문제

SQL Server (2005)의 For XML-Directic과 함께 진정한 빈 XML 요소를 어떻게 만들려면?

예시:

select
    ''
for xml path('element'), root('elements')

출력 :

<elements><element></element></elements>

그러나 내가 정말로 원하는 것은 다음과 같습니다.

<elements><element /></elements>
도움이 되었습니까?

해결책

유형 지침을 추가 한 다음 하위 퀘스트로 실행하십시오.

이와 같이:

select
(
    select
        ''
    for xml path('element'), type
)
for xml path('elements')

다른 팁

select
    null
for xml path('element'), root('elements')

예를 들어 값이 널 이면서만 알아야합니다. ISNULL(Field, '')

이와 같이:

DECLARE @T table
(
  ID int identity primary key,
  Name nvarchar(10)
)
INSERT INTO @T (Name)
    SELECT 'Name1'
    UNION ALL
    SELECT NULL

-- @Result1
SELECT  ID AS Id
        ,ISNULL(Name, '') AS Name
FROM @T
FOR XML PATH ('Person')

-- @Result2
DECLARE @Result2 XML = ( SELECT
                            ID AS Id
                            ,ISNULL(Name, '') AS Name
                        FROM @T
                        FOR XML PATH ('Person'))
SELECT @Result2;

Result1:

<Person>
  <Id>1</Id>
  <Name>Name1</Name>
</Person>
<Person>
  <Id>2</Id>
  <Name></Name>
</Person>

결과 2 :

<Person>
  <Id>1</Id>
  <Name>Name1</Name>
</Person>
<Person>
  <Id>2</Id>
  <Name />
</Person>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top