4
 DECLARE @myXml XML

 SET @myXml =  CONVERT(xml, '<a key="2"></a>', 1)

 SELECT  s.value('@key', 'VARCHAR(8000)')   AS myKey from   @myXml.nodes('/a')  t(s)

答え :

ここに画像の説明を入力

これは問題ありません。

myXml@変数を宣言せずにやりたい。

何かのようなもの :

 SELECT  
    s.value('@key', 'VARCHAR(8000)') AS myKey 
 FROM 
    CONVERT(xml, N'<a key="2"></a>', 1) .nodes('/a')  t(s)

しかし、私はエラーが発生します:

ここに画像の説明を入力

4

2 に答える 2

2

できるよ:

Select CONVERT(xml, N'<a key="2"></a>', 1).value('a[1]/@key', 'varchar(8000)')
于 2012-01-09T15:59:14.903 に答える
1

これはうまくいくはずです:

;WITH xgen (xdata)
AS
(
    SELECT CONVERT(xml, '<a key="2"></a>', 1) AS xdata
)
select s.value('@key', 'VARCHAR(8000)')   AS myKey 
from xgen
    cross apply xgen.xdata.nodes('/a') t(s)
于 2012-01-09T16:08:33.247 に答える