2011-10-01 1 views
0

MS SQL 2005. T-SQL.T-SQL. 하나의 SELECT에 쉼표로 구분 된 문자열을 만드는 방법은 무엇입니까?

나는 많은 좋은 해결책을 어떻게 찾아 냈다. 그러나 내부 SELECT의 결과를 문자열 (예 : 쉼표 구분 기호)로 결합하는 방법은 무엇입니까? 코드 :

SELECT b.date, 
(SELECT o.number FROM order o WHERE o.number = m.number) AS orderList 

FROM bank b, movemoney m 

WHERE b.code = m.code 

표 'movemoney은'테이블 '순서'에서 제로 또는 몇 가지 주문으로 구성되어 있습니다. 어떻게 'orderList'하나의 SELECT 문을 문자열로 만들?

답변

1

원하는 경우 XML PATH를 SELECT의 하위 쿼리에 넣을 수도 있습니다.
난 그냥이 구조를 선호합니다 :

SELECT 
    b.date, 
    SUBSTRING(CAST(foo.bar AS varchar(8000)), 2, 7999) AS orderList 
FROM 
    bank b 
    JOIN 
    movemoney m ON b.code = m.code 
    OUTER APPLY 
    (
    SELECT 
     ',' + concatenatedid 
    FROM 
     order o 
    WHERE 
     o.number = m.number 
    FOR XML PATH ('') 
    ) foo(bar) 
+0

감사합니다. JOIN없이 csv-string을 만들 수 있습니까? –

+0

JOIN은 거의 20 년 동안의 SQL 표준입니다. – gbn

+0

Andrey - 왜 ANSI SQL 92 JOIN 구문을 사용하고 싶지 않으십니까? –

관련 문제