sqlserver中的order by 功能大部分人只会使用时间或者字段进行排序,其效率较为低下
最近有提出需求需要按照某个工序进行排列(特定工序),一开始思考是想通过两次视图,第一次将某个工序替换成数字,第二次在通过数字进行排列,但是思考后发现该方法较为负责且费时,在通过检索度娘后发现,sqlserver是含有自定义排序功能的
以下为代码部分:
select
TOP 100 PERCENT p.序号,
p.内部编号,
p.工序,
p.制表日期 as 最新报工时间,
p.措施,
铸件工艺单细则.排箱号,
v.计划时间 as 造型计划时间,
p.审批时间 as 结构评审完成时间
from
(
select
序号,
审批时间,
内部编号5 as 内部编号,
isnull(x.工序,
'未生产') as 工序,
x.制表日期,
措施38 as 措施
from
新模型结构评审表
left join
在制工序2 x
on x.内部编号=substring(内部编号5,
0,
convert(int,
replace(isnull(convert(int,
charindex('/',
内部编号5)),
0),
0,
datalength(内部编号5))))
where