我有以下參考數據。SQL Select;串聯字符串,避免列爲空的雙逗號?
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
;
感謝
我刪除了我的答案,因爲我發現開始嘗試這種方法來刪除一個多餘的「」在甲骨文串concats與空值不會產生空(因爲我相信它在SQL服務器),就像你所說的那樣。我開始轉向病例陳述,但後來看到了您的答案 - +1 –
+1。 @Yahia - 你剛剛爲我節省了一大筆頭痛。謝謝! –