订购选择子句以特定方式生成

Dav*_*vid 4 sql database oracle

我需要帮助编写一个select子句查询.

例如,假设我有这样的查询:

select value from some_table order by value asc;
Run Code Online (Sandbox Code Playgroud)

结果我得到了这个:

1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

但一个特殊查询我想写,是一个仍然会给我排序的值,但是会放58.

这意味着我需要一个值超出正常顺序.

它可以用其他方式描述.假设我有两组数字(例子):A = {a | 1 <= a <= 118,a!= 78} B = {b | b> 118}我有一个C = AUBU {78}组,我需要将所有这些值排序为"A,78,B"

dcp*_*dcp 9

假设值是整数,您可以这样做:

SELECT *
  FROM tbl
ORDER BY
       CASE
         WHEN value = 5 THEN 8.5
         ELSE value
       END
Run Code Online (Sandbox Code Playgroud)

  • 我不喜欢这个,但它似乎很受欢迎,所以我会一起玩...为什么不使用`WHEN value = 5那么8.5`代替? (2认同)