第一個問題,所以提前道歉,如果這是愚蠢的或喧賓奪主,但我已經搜查了大約30分鐘,現在不用我的確切問題的任何地方找到任何提及:Oracle SQL - 有沒有更好的方法來連接多個字符串與給定的分隔符?
有沒有一種方法來連接一系列字符串,由給定的分隔符分隔,而不是手動將每列之間的分隔符連接起來?
舉一個具體的例子,我現在有這樣的:
SELECT member_no as Member#,
(member_gname
|| ' '
|| member_fname) as Name,
(member_street
|| ' '
|| member_city
|| ' '
|| member_state
|| ' '
|| member_postcode) AS Address,
member_phone AS Phone,
TO_CHAR(member_joindate, 'dd-Mon-yyyy') as Joined
FROM MEMBER;
它做工精細,準確和產生我想要的輸出,但因爲這是研究我不太關注產出多關注.sql文件本身的可讀性和「最佳實踐」因素。我明白CONCAT()只有兩個參數,所以如果沒有嵌套它們(即使更醜陋,可讀性更低)也不行。我在這裏完全天真地進來,但我希望會有某種神奇的AWESOMECONCAT()類型的函數,它將採用我需要的所有列,以及允許我指定要將它們分開的字符(在這種情況下,一個空間)。有任何想法嗎?
此外,這是一個單獨的問題,不值得單獨發佈,但有什麼辦法可以選擇一個'AS'列,並給它一個名稱,包括空白? E.g'成員#'看起來會更好,而且'加入日期'會更清晰,但是我已經在AS之後嘗試了括號和單引號,並且似乎也沒有與SQL開發者一起飛。
不知道爲什麼我沒有嘗試雙引號!來自Java/Lua的SQL,單引號/雙引號的東西不斷讓我感動 - 不要讓我開始關於「||」的感受,意味着連接而不是OR ... – Toadfish 2014-09-19 04:50:37