SQL。按我的订单获取 ID
SQL. Get Ids by my order
我的 sql 查询按以下顺序给我 ID:
3,5,7,1,9,2
我可以使用什么来按顺序获取我的 ID:1,3,2
? (3,1,2)。如果我使用
WHERE ID IN(1,3,2)
它给了我以下信息:(1,2,3)
。
What can I use to get my Ids:1,3,2 in that order? (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>
我的 sql 查询按以下顺序给我 ID:
3,5,7,1,9,2
我可以使用什么来按顺序获取我的 ID:1,3,2
? (3,1,2)。如果我使用
WHERE ID IN(1,3,2)
它给了我以下信息:(1,2,3)
。
What can I use to get my Ids:1,3,2 in that order? (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>