Попробуйте следующий код:
-- MANUAL DATA CREATION
WITH DATAA AS (
SELECT
1 KEY,
'800001348' VALUE,
1 SEQNUM
FROM
DUAL
UNION ALL
SELECT
2,
'IDEAL OPTION',
2
FROM
DUAL
UNION ALL
SELECT
27,
'Place of Service',
3
FROM
DUAL
UNION ALL
SELECT
39,
'IDEAL OPTION',
4
FROM
DUAL
UNION ALL
SELECT
400,
'123 MAIN STREET',
5
FROM
DUAL
UNION ALL
SELECT
400,
'Ste G',
6
FROM
DUAL
UNION ALL
SELECT
410,
'SEATTLE',
7
FROM
DUAL
UNION ALL
SELECT
420,
'Washington',
8
FROM
DUAL
UNION ALL
SELECT
423,
'BENTON',
9
FROM
DUAL
UNION ALL
SELECT
430,
'99336',
10
FROM
DUAL
--
--
UNION ALL
--
--
SELECT
1 KEY,
'850000900' VALUE,
11 SEQNUM
FROM
DUAL
UNION ALL
SELECT
2,
'INVITAE CORPORATION',
12
FROM
DUAL
UNION ALL
SELECT
27,
'Place of Service',
13
FROM
DUAL
UNION ALL
SELECT
39,
'INVITAE CORPORATION',
14
FROM
DUAL
UNION ALL
SELECT
400,
'XYZ 1st AVENUE',
15
FROM
DUAL
UNION ALL
SELECT
410,
'SAN FRANCISCO',
16
FROM
DUAL
UNION ALL
SELECT
420,
'California',
17
FROM
DUAL
UNION ALL
SELECT
423,
'SAN FRANCISCO',
18
FROM
DUAL
UNION ALL
SELECT
430,
'94103',
19
FROM
DUAL
)
--
-- YOUR QUERY STARTS FROM HERE
--
SELECT
MAX(CASE
WHEN KEY = '1' THEN VALUE
END) AS FACILITY_ID,
MAX(CASE
WHEN KEY = '2' THEN VALUE
END) AS UNKNOWN_NUM,
MAX(CASE
WHEN KEY = '27' THEN VALUE
END) AS TYPE_OF_LOCATION,
MAX(CASE
WHEN KEY = '39' THEN VALUE
END) AS EXTERNAL_NAME,
TRIM(',' FROM
LISTAGG(CASE
WHEN KEY = '400' THEN VALUE
END, ',') WITHIN GROUP(
ORDER BY
SEQNUM
)
) AS ADDRESS, -- ADDRESS HAS MORE THAN ONE RECORD IN THE FIRST GROUP OF VALUES
MAX(CASE
WHEN KEY = '410' THEN VALUE
END) AS CITY,
MAX(CASE
WHEN KEY = '420' THEN VALUE
END) AS STATE,
MAX(CASE
WHEN KEY = '423' THEN VALUE
END) AS COUNTY,
MAX(CASE
WHEN KEY = '430' THEN VALUE
END) AS ZIP_CODE
FROM
(
SELECT
DATAA_ALL.KEY,
DATAA_ALL.VALUE,
DATAA_ALL.SEQNUM,
COUNT(1) AS GRP_VAR
FROM
DATAA DATAA_ALL
JOIN DATAA DATAA_FIRST ON ( DATAA_FIRST.KEY = 1
AND DATAA_ALL.SEQNUM >= DATAA_FIRST.SEQNUM )
GROUP BY
DATAA_ALL.KEY,
DATAA_ALL.VALUE,
DATAA_ALL.SEQNUM
)
GROUP BY
GRP_VAR
Выход 
Я использовал GRP_VAR
для разделения групп изатем использовал групповые функции.Кроме того, везде, где есть шансы иметь более одной записи одного и того же атрибута (как адрес в приведенном выше примере), вы можете использовать LISTAGG
вместо MAX
.
Cheers !!