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