以下の参考データがあります。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
のリストがないため、, ,
を表示しないようにする必要があります。
私は自分自身でいくつかの調査を行い、ダブルコンマを置き換えるためにSUBSTRをOracleで使用することに決めましたが、少し汚れているようです。複雑な機能(例えばthis previous SO questionなど)の使用を避けて、これを行うよりクリーンな方法がありますか?
これは私が持っているものです。
SELECT
SUPPNAME as "Supplier Name",
REPLACE(STREET || ', ' || TOWN || ', ' || COUNTY || ', ' || POSTCODE, ' ,','') as "Supplier Address"
FROM
SUPPLIERS
;
おかげ
で私は私の答えを削除し、あなたが言及したのと同じです。私はケースステートメントに切り替え始めましたが、あなたの答えを見ました - +1 –
+1。 @ヤヒヤ - あなたは私に大きな頭痛を救った。ありがとう! –