gpt4 book ai didi

sql - SQL选择;连接字符串,避免在列为空的情况下使用双逗号?

转载 作者:行者123 更新时间:2023-12-04 22:35:32 26 4
gpt4 key购买 nike

我有以下引用数据。

PERSON_NAME                    STREET                   TOWN             COUNTY           POSTCODE   
------------------------------ ------------------------ ---------------- ---------------- ----------
David Smith 30 Johnson Street Norwich Norfolk NA38 3KL
John Brown Douglas Road Cambridge C8 9IJ
Jackie White 8 High Street Ipswich Suffolk IP7 2YT
Andrea Blue 9 Marlborough Ave Bury Suffolk IP4 0XC
Jemima Green Riverside Walk Colchester Essex CO6 7PR
James Gray 167 Hadleigh Place London SW1 4TU

我想做的是显示一个人名列表,以及他们的地址,并用逗号分隔的字符串连接在一起。

这部分很简单,我使用了 ||来合并列并放置逗号分隔符。

我要讨论的部分是,有些行没有列出 COUNTY的事实,因此我需要避免显示 , ,

我已经为自己做过一些研究,并决定使用Oracle中的 SUBSTR代替双逗号,但是确实有点“脏”。有没有一种更干净的方法可以避免使用复杂的函数(例如 this previous SO question)?

这就是我所拥有的:
SELECT
SUPPNAME as "Supplier Name",
REPLACE(STREET || ', ' || TOWN || ', ' || COUNTY || ', ' || POSTCODE, ' ,','') as "Supplier Address"
FROM
SUPPLIERS
;

谢谢

最佳答案

尝试

SELECT
SUPPNAME AS "Supplier Name",
(
CASE WHEN STREET IS NULL THEN '' ELSE STREET || ', ' END ||
CASE WHEN TOWN IS NULL THEN '' ELSE TOWN || ', ' END ||
CASE WHEN COUNTY IS NULL THEN '' ELSE COUNTY || ', ' END ||
CASE WHEN POSTCODE IS NULL THEN '' ELSE POSTCODE END
) AS "Supplier Address"
FROM SUPPLIERS

关于sql - SQL选择;连接字符串,避免在列为空的情况下使用双逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280412/

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