【发布时间】:2015-06-11 18:50:03
【问题描述】:
我的 sql 查询按以下顺序给我 id:
3,5,7,1,9,2
我可以使用什么来按顺序获取我的 ID:1,3,2? (3,1,2)。如果我使用
WHERE ID IN(1,3,2)
它给了我以下信息:(1,2,3)。
【问题讨论】:
标签: sql oracle oracle10g sql-order-by
我的 sql 查询按以下顺序给我 id:
3,5,7,1,9,2
我可以使用什么来按顺序获取我的 ID:1,3,2? (3,1,2)。如果我使用
WHERE ID IN(1,3,2)
它给了我以下信息:(1,2,3)。
【问题讨论】:
标签: sql oracle oracle10g sql-order-by
我可以使用什么来按顺序获取我的 Ids: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>
【讨论】: