gpt4 book ai didi

postgresql - ORDER BY CASE & Ordinal 不工作

转载 作者:行者123 更新时间:2023-11-29 12:10:02 26 4
gpt4 key购买 nike

以第 7 列排序为例 -

此代码根本不对数据进行排序:

 ORDER BY CASE WHEN '1'='2' THEN 5 
WHEN '1'='1' THEN 7
ELSE 13 END

Sort ignored...

如果我将其更改为硬编码序数,它会起作用:

ORDER BY 7

enter image description here

最佳答案

只要 SELECT 列表中的各个表达式属于同一类型,就可以使用表达式本身来代替 SELECT 列表编号:

SELECT expression1, expression2, ...
...
ORDER BY CASE
WHEN 1=2
THEN expression5
WHEN 1=1
THEN expression7
ELSE expression13
END;

如果数据类型不同,则使用类型转换进行调整。

您的查询不起作用,因为在 ORDER BY 中只能使用整型文字作为列号。在所有其他情况下,整数仅代表其常数值。

如果不是这样,ORDER BY 表达式很容易变得不明确。请看以下内容:

... ORDER BY intcol + 3;

这应该意味着“添加三个”还是“添加 SELECT 列表中的第三个表达式”?

关于postgresql - ORDER BY CASE & Ordinal 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com