DECLARE @T TABLE(px0 int,PX varchar(10)) INSERT @T SELECT 1,'1' UNION ALL SELECT 1,'9' UNION ALL SELECT 3,NULL UNION ALL SELECT 1,'8' UNION ALL SELECT 1,'16' UNION ALL SELECT 4,NULL UNION ALL SELECT 1,'10' SELECT * FROM @T ORDER BY px0,cast(px as int)
你可以直接排,或者转换空值后再排序。
转换函数:IsNull(字段,如果为空后的取值)
如:
px0 PX
1 1
1 9
3 空
1 8
1 16
4 空
1 10 结果:
px0 PX
1 1
1 8
1 9
1 10
1 16
3 空
4 空 先要以px0字段为先排序,然后以px排序(字符型字段)
DECLARE @T TABLE(px0 int,PX varchar(10))
INSERT @T SELECT 1,'1'
UNION ALL SELECT 1,'9'
UNION ALL SELECT 3,NULL
UNION ALL SELECT 1,'8'
UNION ALL SELECT 1,'16'
UNION ALL SELECT 4,NULL
UNION ALL SELECT 1,'10'
SELECT *
FROM @T
ORDER BY px0,cast(px as int)