选择测试为[text()]

Kei*_*ard 0 t-sql

我已经继承了这一行代码。通常,我希望在As之后发生的事情是一个别名。但是,我从未在方括号中看到别名。另外,我不确定text()中的含义是什么?文本是过时的数据类型吗?有人可以给我发送任何链接,以便我弄清楚这意味着什么吗?

谢谢。

J B*_*ice 5

[text()]别名通常在使用XML查询只能从一列中的值成为一个元素中的文本的输出:

DECLARE @Table TABLE (FieldText varchar(10))
INSERT INTO @Table VALUES ('some text'), ('more text')

SELECT FieldText
FROM @Table 
FOR XML PATH('RECORD'), ROOT('ROOT'), TYPE

--<ROOT>
--  <RECORD>
--    <FieldText>some text</FieldText>
--  </RECORD>
--  <RECORD>
--    <FieldText>more text</FieldText>
--  </RECORD>
--</ROOT>

SELECT FieldText as [text()]
FROM @Table 
FOR XML PATH('RECORD'), ROOT('ROOT'), TYPE

--<ROOT>
--  <RECORD>some text</RECORD>
--  <RECORD>more text</RECORD>
--</ROOT>
Run Code Online (Sandbox Code Playgroud)