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>