У меня есть следующие справочные данные.
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 для замены двойных запятых, однако он действительно кажется немного «грязным». Есть ли более чистый способ сделать это, избегая использования сложных функций (таких как этот предыдущий вопрос SO )?
Это то, что у меня есть:
SELECT
SUPPNAME as "Supplier Name",
REPLACE(STREET || ', ' || TOWN || ', ' || COUNTY || ', ' || POSTCODE, ' ,','') as "Supplier Address"
FROM
SUPPLIERS
;
Спасибо