如何在 SQL 中连接单个标识符的多个值?
How can I concatenate multiple values for a single identifier in SQL?
我的代码:
SELECT
o.ORDER_ID
,o.ORDER_DESCRIPTION
,o.ORDER_DATE
,o.ORDER_ITEM_ID
, i.CONCATENATED_ITEM_DESC
FROM ORDERS o
INNER JOIN (
SELECT i.ITEM_ID,
CASE
WHEN COUNT(i.ITEM_ID > 1) THEN 'CONCATENATE THE DESCRIPTIONS'
END AS CONCATENATED_ITEM_DESC
FROM ITEMS i
)i ON o.ORDER_ITEM_ID = i.ITEM_ID
;
我正在尝试从另一个 table 串联的描述中获取描述。
标准函数是listagg()
:
SELECT o.*, i.CONCATENATED_ITEM_DESC
FROM ORDERS o INNER JOIN
(SELECT i.ITEM_ID,
LISTAGG(ITEM_DESC, ', ') WITHIN GROUP )ORDER BY ITEM_DESC) AS CONCATENATED_ITEM_DESC
FROM ITEMS i
GROUP BY i.ITEM_ID
)
ON o.ORDER_ITEM_ID = i.ITEM_ID;
但是,许多数据库对该函数有其他名称,包括 string_agg()
和 group_concat()
。
我的代码:
SELECT
o.ORDER_ID
,o.ORDER_DESCRIPTION
,o.ORDER_DATE
,o.ORDER_ITEM_ID
, i.CONCATENATED_ITEM_DESC
FROM ORDERS o
INNER JOIN (
SELECT i.ITEM_ID,
CASE
WHEN COUNT(i.ITEM_ID > 1) THEN 'CONCATENATE THE DESCRIPTIONS'
END AS CONCATENATED_ITEM_DESC
FROM ITEMS i
)i ON o.ORDER_ITEM_ID = i.ITEM_ID
;
我正在尝试从另一个 table 串联的描述中获取描述。
标准函数是listagg()
:
SELECT o.*, i.CONCATENATED_ITEM_DESC
FROM ORDERS o INNER JOIN
(SELECT i.ITEM_ID,
LISTAGG(ITEM_DESC, ', ') WITHIN GROUP )ORDER BY ITEM_DESC) AS CONCATENATED_ITEM_DESC
FROM ITEMS i
GROUP BY i.ITEM_ID
)
ON o.ORDER_ITEM_ID = i.ITEM_ID;
但是,许多数据库对该函数有其他名称,包括 string_agg()
和 group_concat()
。