2012-08-10 2 views
0

는 SQL보고 서비스 데이터베이스의 카탈로그 테이블에 나열된 각 보고서 매개 변수의 목록을 분리 한 행에 쉼표로 구분 된 값을 얻을 수 있습니다 null이 아닌 첫 번째 값을 반환하지만 쉼표로 반환 된 값 표를 구분하는 데 사용할 수 있습니다.COALESCE 쉼표를 얻기 위해 노력

답변

1

나는 CSAL 생성을 위해 COALESCE를 사용하는 방법을 모른다. 당신은 "말할 반환 된 모든 행을 쿼리의 끝에"('') XML 경로에 대해 "던져, 기본적으로

WITH cte AS (
    SELECT [Path] , 
      [Name] , 
      CreationDate , 
      ModifiedDate , 
      CAST(parameter AS XML) AS parameter 
    FROM [dbo].[Catalog] AS c 
), 
cte2 AS (
SELECT [Path] , 
     p.value('(./Name)[1]', 'nvarchar(50)') AS [Parameter] 
FROM [cte] AS c 
CROSS APPLY c.parameter.nodes('/Parameters/Parameter') AS T (p) 
) 

SELECT [Path], 
    STUFF((
     SELECT ',' + [Parameter] 
     from cte2 c2 
     WHERE c.[Path] = c2.[Path]  
     FOR XML PATH('') 
    ), 1, 1, '') 
from [dbo].[Catalog] AS c 

: 나는, 그러나, XML의 PATH 쿼리와 표준 트릭을 사용 했 주변 태그와 같이 빈 문자열로 그들을 연결하십시오. " 이것은 당신에게 당신이 가야 할 곳을 얻는 동안, 빈 문자열 외에 뭔가를 전달하면 그것이 어떻게 동작 하는지를보기 위해 그 주위를 놀 수 있습니다.

+0

훌륭합니다. 감사합니다. – tnktnk

관련 문제