我想在 SQL Server 中对这个查询的结果进行排序:
SELECT *
FROM t1
WHERE t1.my_field_name IN ('val1', 'val2', 'val3');
...这样我就可以按照与 IN 列表值相同的顺序对结果进行排序。
在 mySQL 中这可以很容易地完成:
SELECT *
FROM t1
WHERE my_field_name IN ('val1', 'val2', 'val3')
ORDER BY FIELD(my_field_name, 'val1', 'val2', 'val3');
...但我不知道如何在 SQL Server 中执行此操作。有什么建议吗?
最佳答案
使用这样的 case 语句:
ORDER BY
CASE field
WHEN 'val1' THEN 1
WHEN 'val2' THEN 2
WHEN 'val3' THEN 3
END, my_field_name
关于SQL 服务器 : custom column sort in WHERE IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70032633/