gpt4 book ai didi

sql - ORDER BY 更改了具有相同名称的列

转载 作者:行者123 更新时间:2023-11-29 13:26:30 25 4
gpt4 key购买 nike

我有一个表 artist,其中包含多个列,例如 nametype ...
我希望返回列 name 并按字母顺序排列,但应调整列名称。如果艺术家的名字以 'the ' 开头(不区分大小写),则应将其删除并放在大写的名字后面,例如 'the Beatles' -> “披头士乐队”

这是我的代码(它不起作用):

SELECT name,
CASE
WHEN UPPER(name) LIKE 'THE %' THEN CONCAT(RIGHT(name, length(name)-4),', THE')
END AS name
FROM artist
ORDER BY name

问题 1:name 没有被替换,它创建了一个新列。

问题 2:新列具有相同的名称 => 列 nameorder by name 中不明确。

我怎样才能轻松解决这些问题?

最佳答案

CASE中使用ELSE子句:

SELECT
CASE
WHEN UPPER(name) LIKE 'THE %' THEN CONCAT(RIGHT(name, length(name)-4),', THE')
ELSE name
END AS name
FROM artist
ORDER BY name

关于sql - ORDER BY 更改了具有相同名称的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32926373/

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