我想有条件地命令查询
ORDER BY
CASE
WHEN TRUE THEN users.name, users.lastname END
但它会引起语法错误
syntax error near or at ","
。下面的examle工作起来很有魅力
ORDER BY
CASE
WHEN TRUE THEN users.name END
我也试过
ORDER BY
CASE
WHEN TRUE THEN "users.name, users.lastname" END
提出
"users.name, users.lastname"
不存在 ORDER BY
CASE
WHEN TRUE THEN "users"."name", "users"."lastname" END
这将提高
syntax error at ","
如何将多个列按顺序放入case内部?
最佳答案
您需要使用ROW constructor来组合几个列
ORDER BY
CASE
WHEN TRUE THEN ROW(users.name, users.lastname) END
如果
ROW()
中有超过1个值,则可以跳过ROW
关键字。下面是一个简短的版本,包含语法糖:ORDER BY
CASE
WHEN TRUE THEN (users.name, users.lastname) END
关于sql - 在多列ORDER BY中使用CASE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39873677/