我的sql查询按顺序给出了ID:
3,5,7,1,9,2
我可以用什么来获取我的ID:1,3,2
按此顺序? (3,1,2)。如果我使用
WHERE ID IN(1,3,2)
它给了我以下内容:(1,2,3)
。
答案 0 :(得分:0)
我可以用什么来获取我的ID:1,3,2按此顺序? (3,1,2)。
您可以在 ORDER BY子句中使用 CASE表达式来自定义输出的排序。
例如,
SQL> WITH DATA AS(
2 SELECT 3 ID FROM dual UNION ALL
3 SELECT 5 ID FROM dual UNION ALL
4 SELECT 7 ID FROM dual UNION ALL
5 SELECT 1 ID FROM dual UNION ALL
6 SELECT 9 ID FROM dual UNION ALL
7 SELECT 2 ID FROM dual
8 )
9 SELECT id
10 FROM data
11 WHERE id IN( 1, 3, 2 )
12 ORDER BY CASE ID
13 WHEN 3 THEN 1
14 WHEN 1 THEN 2
15 WHEN 2 THEN 3
16 END
17 /
ID
----------
3
1
2
SQL>