选择Test As [text()]

时间:2016-06-30 20:17:45

标签: tsql

我继承了这行代码。通常情况下,我会期望As之后发生的是别名。但是,我从未在方括号中看到过别名。另外,我不确定text()中的parens是什么意思?文本是过时的数据类型吗?是否有人可以发送给我的链接,以便我能弄清楚这意味着什么?

谢谢。

4 个答案:

答案 0 :(得分:4)

XML 查询中经常使用[text()]别名,以使列中的值成为元素中的文本输出:

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>

答案 1 :(得分:1)

  

但是,我从未在方括号中看到过别名

如果您尝试使用关键字/ reserveword作为别名(OR),如果您尝试使用其间有空格的名称,可以是My Special Alias name

使用As [text()]对我来说有点奇怪。不,它没有任何意义。别名只是文本文字以获得更好的可读名称,但我建议使用适当的名称来提高可读性,否则使用别名没有意义。

答案 2 :(得分:1)

对于一个字段名称来说有点奇怪,但是Brackets并不是什么新鲜的

Declare @Table table (test varchar(25))
Insert into @Table values ('Some Value')

Select Test as [text()] From @Table

返回

text()
Some Value

使用可以使用括号表示非标准字段名称,即[总销售额]

答案 3 :(得分:0)

Microsoft SQL Server在方括号中的查询中格式化Alias'