gpt4 book ai didi

sql - 如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在选择列表中......我花了几个小时但没有找到

转载 作者:行者123 更新时间:2023-12-04 21:40:25 25 4
gpt4 key购买 nike

下面是我的大型 sql 查询的一部分,花了几个小时后我找不到我的问题的解决方案。
我的要求只是对 RaceNumber 上的记录进行升序排序,并将空记录放在底部

SELECT DISTINCT TP.racenumber, 
TP.teamid,
TP.teamname
FROM tblteamprofile TP
ORDER BY CASE
WHEN TP.racenumber IS NULL THEN 1
ELSE 0
end,
TP.teamid,
TP.teamname

任何人都可以帮助我这只是我卑微的请求......!请

最佳答案

将缺少的 ORDER BY 项添加到 SELECT 列表:

SELECT DISTINCT   
TP.RaceNumber,
CASE WHEN TP.RaceNumber is null THEN 1 ELSE 0 END,
TP.TeamID,
TP.TeamName
FROM
tblTeamProfile TP
ORDER BY
CASE WHEN TP.RaceNumber is null THEN 1 ELSE 0 END,
TP.TeamID,
TP.TeamName

正如 Factor Mystic 在评论中敏锐地指出的那样,如果您的 RDBMS 允许在 ORDER BY 子句中重用别名,您可以简化查询:
SELECT DISTINCT   
TP.RaceNumber,
CASE WHEN TP.RaceNumber is null THEN 1 ELSE 0 END AS RaceNumberFlag,
TP.TeamID,
TP.TeamName
FROM
tblTeamProfile TP
ORDER BY
RaceNumberFlag,
TP.TeamID,
TP.TeamName

关于sql - 如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在选择列表中......我花了几个小时但没有找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007282/

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