2014-04-02 2 views
1

일부 select를 기반으로 XML 문자열을 만드는 저장 프로 시저가 있습니다.SQL Server : Select에 NULL의 기본값 표시

select 중 하나가 NULL을 반환하는 경우 기본값을 표시하는 방법이 있습니까? 기본적으로 값이 NULL인지 아닌지에 관계없이 XML에서 동일한 구조를 유지하려고합니다 (현재 XML은 값이있는 레코드 만 표시 함).

예 저장 프로 시저이 어떤 도움, 팀에 대한

SELECT  A.ranking, 
      (
       SELECT  B.groupName, 
          (
           SELECT  C.policy, 
              C.groupCount 
           FROM  @temp C 
           WHERE  C.ranking = A.ranking 
           AND   C.groupName = B.groupName 
           ORDER BY C.groupCount desc, C.policy 
           FOR XML PATH(''), ELEMENTS, TYPE 
          ) AS groupName 
       FROM  @temp B 
       WHERE  B.ranking = A.ranking 
       GROUP BY B.groupName 
       ORDER BY B.groupName 
       FOR XML PATH(''), ELEMENTS, TYPE 
      ) 
FROM  @temp A 
GROUP BY A.ranking 
ORDER BY A.ranking 
FOR XML PATH('policyRanking'), ELEMENTS, TYPE, ROOT('ranks') 

많은 감사합니다. 이

SELECT  coalesce(A.ranking,0) as ranking 
      (
       SELECT  coalesce(B.groupName,'') as groupName, 
          (
           SELECT  C.policy, 
              C.groupCount 
           FROM  @temp C 
           WHERE  C.ranking = A.ranking 
           AND   C.groupName = B.groupName 
           ORDER BY C.groupCount desc, C.policy 
           FOR XML PATH(''), ELEMENTS, TYPE 
          ) AS groupName 
       FROM  @temp B 
       WHERE  B.ranking = A.ranking 
       GROUP BY B.groupName 
       ORDER BY B.groupName 
       FOR XML PATH(''), ELEMENTS, TYPE 
      ) 
FROM  @temp A 
GROUP BY A.ranking 
ORDER BY A.ranking 
FOR XML PATH('policyRanking'), ELEMENTS, TYPE, ROOT('ranks') 

답변

1

시도 뭔가, 각 NULL이 허용 열을 대체하여 표현식 (테이블 정의 참조)

ISNULL (column , default_value) 
+0

감사합니다! 당신은 합병이 여기서 무엇을하는지 설명 할 수 있습니까? – user2571510

+1

COALESCE는 NULL의 열이 두 번째 매개 변수로 입력 된 값을 설정합니다. – Madhivanan

+0

Perfect - 많이 감사합니다! – user2571510

3

사용 ISNULL 기능과 같은