我有
SELECT * FROM Table1 WHERE Col1 IN(4,2,6)
我想选择并返回我在 IN 子句中指示的指定顺序的记录
(第一个显示记录,Col1=4,Col1=2,...)
我可以用
SELECT * FROM Table1 WHERE Col1 = 4
UNION ALL
SELECT * FROM Table1 WHERE Col1 = 6 , .....
但我不想使用它,因为我想将它用作存储过程而不是自动生成。
最佳答案
我知道这有点晚了,但最好的方法是
SELECT *
FROM Table1
WHERE Col1 IN( 4, 2, 6 )
ORDER BY CHARINDEX(CAST(Col1 AS VARCHAR), '4,2,67')
或者
SELECT CHARINDEX(CAST(Col1 AS VARCHAR), '4,2,67')s_order,
*
FROM Table1
WHERE Col1 IN( 4, 2, 6 )
ORDER BY s_order
关于sql - 按 IN 子句的顺序选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306651/