使用 CASE 表达式对结果进行排序

使用 CASE 表达式对结果排序

我认为无法将关键字作为参数传递,但可以在 CASE 表达式中使用布尔型 :desc 参数。

--[params]
-- boolean :desc = false

SELECT
*
FROM generate_series(1, 10) AS num
ORDER BY
  CASE WHEN :desc THEN num END DESC,
  CASE WHEN NOT :desc THEN num END ASC
5 个赞