【发布时间】:2021-12-08 05:05:24
【问题描述】:
我正在尝试使用以下示例将行转换为列:
| LVL | COL_VALUE | TABLE_SRC |
|---|---|---|
| 16 | INT: ADDRESS_LINE_2:NULL | INT |
| 16 | BASE: ADDRESS_LINE_2:X | BASE |
| 17 | INT: ADDRESS_LINE_3:NULL | INT |
| 17 | BASE: ADDRESS_LINE_3:X | BASE |
输出应该是:
| INT | BASE |
|---|---|
| INT: ADDRESS_LINE_2:NULL | BASE: ADDRESS_LINE_2:X |
| INT: ADDRESS_LINE_3:NULL | BASE: ADDRESS_LINE_3:X |
具有相同 LVL 的 COL_VALUE 应该在 1 行中
我尝试使用 PIVOT,但由于聚合函数,它只返回 1 行
SELECT *
FROM
(
SELECT
BATCH_ID
,CONTACT_ID
,COL_VALUE
,TABLE_SRC
FROM
MISMATCH
)
PIVOT
(
max(COL_VALUE) FOR TABLE_SRC IN ('1BASE' BASE, '1INT' INT)
)
【问题讨论】:
-
请将您的示例数据和预期输出仅作为文本发布。
标签: sql oracle pivot transpose