select HId, TestM, *
from TestDb
where Hid in ( 4, 5, 7, 9, 1, 132, 312)
如果我运行上述.sql文件,则默认情况下第一列将升序排列。
我确实希望Hid列按where子句中的值顺序。我该如何实现?
Hid | TestM | ...
_______________
4
5
7
9
1
132
312
您必须CASE
在ORDER BY
子句中使用表达式:
SELECT HId, TestM, *
FROM TestDb
WHEN Hid IN ( 4, 5, 7, 9, 1, 132, 312)
ORDER BY CASE Hid
WHEN 4 THEN 1
WHEN 5 THEN 2
WHEN 7 THEN 3
WHEN 9 THEN 4
WHEN 1 THEN 5
WHEN 132 THEN 6
WHEN 312 THEN 7
END
还要注意,表只是无序的集合,因此,如果您ORDER BY
省略该子句,那么结果集就没有保证的顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句