XML 지정 용 SQL Server가있는 진정한 빈 요소
-
05-07-2019 - |
문제
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>
제휴하지 않습니다 StackOverflow