반응형
SQL Server 2005에서 여러 행을 쉼표로 구분된 목록으로 결합하려면 어떻게 해야 합니까?
지금은 다음과 같은 SQL 쿼리가 있습니다.
SELECT X, Y FROM POINTS
다음과 같이 결과를 반환합니다.
X Y
----------
12 3
15 2
18 12
20 29
(HTML <AREA> 태그에 사용하기에 적합한) 결과를 한 행에 모두 반환하고 싶습니다.
XYLIST
----------
12,3,15,2,18,12,20,29
이것을 SQL만 사용해서 할 수 있는 방법이 있습니까?
빠르고 도움이 되는 답변 감사합니다 여러분!
또 다른 빠른 방법을 찾았습니다.
SELECT STUFF(( SELECT ',' + X + ',' + Y
FROM Points
FOR
XML PATH('')
), 1, 1, '') AS XYList
공은 이 사람에게 있습니다.
DECLARE @XYList varchar(MAX)
SET @XYList = ''
SELECT @XYList = @XYList + CONVERT(varchar, X) + ',' + CONVERT(varchar, Y) + ','
FROM POINTS
-- Remove last comma
SELECT LEFT(@XYList, LEN(@XYList) - 1)
사용.COALESCE
트릭, 뒤에 오는 쉼표에 대해서는 걱정하지 않아도 됩니다.
DECLARE @XYList AS varchar(MAX) -- Leave as NULL
SELECT @XYList = COALESCE(@XYList + ',', '') + CONVERT(varchar, X) + ',' + CONVERT(varchar, Y)
FROM POINTS
SQL 2017부터 다음을 사용할 수 있습니다.STRING_AGG
SELECT STRING_AGG (X + ',' + Y, ',') AS XYLIST
FROM POINTS
https://learn.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-2017
DECLARE @s VarChar(8000)
SET @s = ''
SELECT @s = @s + ',' + CAST(X AS VarChar) + ',' + CAST(Y AS VarChar)
FROM POINTS
SELECT @s
선두 쉼표만 없애면 됩니다.
언급URL : https://stackoverflow.com/questions/180032/how-can-i-combine-multiple-rows-into-a-comma-delimited-list-in-sql-server-2005
반응형
'programing' 카테고리의 다른 글
JPA 트랜잭션을 커밋할 수 없습니다.트랜잭션이 rollbackOnly로 표시됨 (0) | 2023.10.18 |
---|---|
MySQL 모든 스토어에 대한 최신 엔트리 가져오기 (0) | 2023.10.18 |
열을 날짜 형식으로 변환(Pandas Dataframe) (0) | 2023.10.18 |
기본 FirebaseApp이 초기화되지 않았습니다. (0) | 2023.10.18 |
Clean C 코드를 작성하는 동안 ARM 미정렬 메모리 액세스의 이점 활용 (0) | 2023.10.18 |