1

SQL Server (2005) で for xml ディレクティブを使用して真に空の xml 要素を作成するにはどうすればよいですか?

例:

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

出力:

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

しかし、私が本当に欲しいのは:

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

3 に答える 3

1

type ディレクティブを追加し、サブクエリで実行します。

このような:

select
(
    select
        ''
    for xml path('element'), type
)
for xml path('elements')
于 2009-10-21T10:52:51.270 に答える
0

値が null かどうかを知る必要があるだけです。たとえば、次のようになります。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;

結果1:

<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>
于 2017-08-28T18:58:02.707 に答える
0
select
    null
for xml path('element'), root('elements')
于 2009-11-19T13:49:19.130 に答える