我不太确定如何说出这个问题。但如果你想象我有:
func
我想做一个查询:
var contents = "5, 7, 1, 3, 4";
我会得到以下回复(a):
SELECT id,name FROM db WHERE id in (contents);
但实际上,我希望按内容顺序排序,即(b):
ID NAME
1 ONE
3 THREE
4 FOUR
5 FIVE
7 SEVEN
无论如何要将resposne命名为 b 而不是 a
答案 0 :(得分:2)
ANSI SQL方法使用巨型case
表达式:
SELECT id,name
FROM db
WHERE id in (contents)
ORDER BY (CASE id WHEN 5 THEN 1 WHEN 7 THEN 2 WHEN 1 THEN 3 WHEN 3 THEN 4 WHEN 4 THEN 5 END);
答案 1 :(得分:0)
使用标准ANSI SQL,您可以加入指定排序顺序的值列表:
select t.*
from the_table t
join (
values
(5, 1),
(7, 2),
(1, 3),
(3, 4),
(4, 5)
) as s (id, sort_order) on t.id = s.id
order by s.sort_order ;