select * from 表 where 代码<>'I' order by 序号 union all select * from 表 where 代码='I'
select * from 表 where 代碼<>'I' order by 序号 union all select * from 表 where 代碼='I'
SELECT * FROM ( SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1 UNION ALL SELECT '小熊','I',2 UNION ALL SELECT '青衣','M',3 ) T ORDER BY CHARINDEX('I',代码),序号
楼上兄弟,你的语句执行不成功, order by 序号去掉就可以了,但是只把为代码为I的放在最后, 还是没有按序号排序
SELECT * FROM T ORDER BY CHARINDEX('I',代码),序号
SELECT * FROM ( SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1 UNION ALL SELECT '小熊','I',2 UNION ALL SELECT '青衣','B',3 UNION ALL SELECT '小熊','D',4 UNION ALL SELECT '青衣','M',5 UNION ALL SELECT '小熊','E',6 UNION ALL SELECT '青衣','G',7 ) T ORDER BY CHARINDEX('I',代码),序号
select * from 表 order by case when 代码<>'I' THEN 序号 ELSE 序号+20000000 END
select 姓名,代码,case when 代码='I' then 'x'+序号 else 序号 end as 序号1 from 表 order by 序号1 思路:当代码为‘I’时,对序号进行处理,使之排在其它序号之后,再按处理后的序号排序即可。'x'+序号为例,可根据你实际情况自已定义规则。
select c.fldNameS,c.fldCodeS,c.fldIDI from (select 'a'as fldOrderIDS , a.fldNameS as fldNames,a.fldCodeS as fldCodeS,a.fldIDI as fldIDI from table1 a where fldCodeS <>'I' union select 'b'as fldOrderIdS,b.fldNameS as fldNames,b.fldCodeS as fldCodeS,b.fldIDI as fldIDI from table1 b where fldCodeS ='I')c order by c.fldOrderIdS,c.fldIDI
如果I排第一,可以: SELECT * FROM T ORDER BY CHARINDEX('I',代码) DESC,序号ORSELECT * FROM T ORDER BY case when 代码<>'I' THEN 序号 ELSE NULL END
To: gmlxf(烛光) SELECT * FROM T ORDER BY case when 代码<>'I' THEN 序号 ELSE NULL END --改一改 SELECT * FROM T ORDER BY case when 代码<>'I' THEN 序号 ELSE NULL END,序号
case when 代码<>'I' THEN 序号 ELSE NULL END,序号 -------- 你这个序号会不会是多余的?为什么。
select 姓名,代码,序号,case when 代码='I' then 2 else 1 end a order by a,代码这条语句就应该能够成功了哈。
union all
select * from 表 where 代碼='I'
(
SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1
UNION ALL SELECT '小熊','I',2
UNION ALL SELECT '青衣','M',3
) T ORDER BY CHARINDEX('I',代码),序号
order by 序号去掉就可以了,但是只把为代码为I的放在最后,
还是没有按序号排序
FROM T
ORDER BY CHARINDEX('I',代码),序号
(
SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1
UNION ALL SELECT '小熊','I',2
UNION ALL SELECT '青衣','B',3
UNION ALL SELECT '小熊','D',4
UNION ALL SELECT '青衣','M',5
UNION ALL SELECT '小熊','E',6
UNION ALL SELECT '青衣','G',7
) T ORDER BY CHARINDEX('I',代码),序号
Rotaxe(程序员)
hdslah() 你们俩的执行不了
gmlxf(烛光) 你的成功了,谢谢
order by 序号1
思路:当代码为‘I’时,对序号进行处理,使之排在其它序号之后,再按处理后的序号排序即可。'x'+序号为例,可根据你实际情况自已定义规则。
from
(select 'a'as fldOrderIDS , a.fldNameS as fldNames,a.fldCodeS as fldCodeS,a.fldIDI as fldIDI
from table1 a
where fldCodeS <>'I'
union
select 'b'as fldOrderIdS,b.fldNameS as fldNames,b.fldCodeS as fldCodeS,b.fldIDI as fldIDI
from table1 b
where fldCodeS ='I')c
order by c.fldOrderIdS,c.fldIDI
caiyunxia(monkey) 两位真强,都执行成功了,都可以,厉害
牛人,,,
向你们学习,结贴
SELECT *
FROM T
ORDER BY CHARINDEX('I',代码) DESC,序号ORSELECT *
FROM T
ORDER BY
case when 代码<>'I' THEN 序号 ELSE NULL END
SELECT *
FROM T
ORDER BY
case when 代码<>'I' THEN 序号 ELSE NULL END
--改一改
SELECT *
FROM T
ORDER BY
case when 代码<>'I' THEN 序号 ELSE NULL END,序号
--------
你这个序号会不会是多余的?为什么。