티스토리 뷰

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)
-------------------

빠르고 유용한 답변을 주셔서 감사합니다!

이 작업을 수행하는 또 다른 빠른 방법을 찾았습니다.

SELECT  STUFF(( SELECT ',' + X + ',' + Y
                FROM Points
                              FOR
                                              XML PATH('')
                                                            ), 1, 1, '') AS XYList
                                                            

신용은이 사람에게 간다 :

http://geekswithblogs.net/mnf/archive/2007/10/02/t-sql-user-defined-function-to-concatenate-column-to-csv-string.aspx

-------------------

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://docs.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 

선행 쉼표를 제거하십시오.



출처
https://stackoverflow.com/questions/180032
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31