xml 字符串连接的 tsql - 它是如何工作的
tsql for xml string concat - How it works
我有以下运行良好的代码:
STUFF( (
select
char(13)+'Item '+i.item+' : '--+char(13) +i.item_descr
from @itemlines i
where i.customer=main.customer
FOR XML PATH(''), TYPE
).value('.','varchar(max)')
,1,1, '')
.value() 是什么东西?类似于...select 方法?它有什么作用?任何参考链接也将不胜感激!
FOR XML
将 return 一个 XML 数据类型; .value(...,...)
取出 XML 值并将其转换为定义的数据类型。在您的情况下,根节点 ('.') 中的所有内容都转换为 varchar(max)
对于某些 blogs/links 查看 Aaron Bertrand's post or Adam Machanic's 还要注意 STRING_AGG
SQL2017 中的新函数
您使用 FOR XML PATH
将 table 转换为 XML。 XML 数据由具有两个参数的 XML data type in SQL Server and it is possible to process a list of different methods on this data type. One of these methods is a value method 表示:XQuery 和数据类型。该方法允许您将 XML 中的数据转换为其他格式(在您的情况下为 varchar)。
我有以下运行良好的代码:
STUFF( (
select
char(13)+'Item '+i.item+' : '--+char(13) +i.item_descr
from @itemlines i
where i.customer=main.customer
FOR XML PATH(''), TYPE
).value('.','varchar(max)')
,1,1, '')
.value() 是什么东西?类似于...select 方法?它有什么作用?任何参考链接也将不胜感激!
FOR XML
将 return 一个 XML 数据类型; .value(...,...)
取出 XML 值并将其转换为定义的数据类型。在您的情况下,根节点 ('.') 中的所有内容都转换为 varchar(max)
对于某些 blogs/links 查看 Aaron Bertrand's post or Adam Machanic's 还要注意 STRING_AGG
SQL2017 中的新函数
您使用 FOR XML PATH
将 table 转换为 XML。 XML 数据由具有两个参数的 XML data type in SQL Server and it is possible to process a list of different methods on this data type. One of these methods is a value method 表示:XQuery 和数据类型。该方法允许您将 XML 中的数据转换为其他格式(在您的情况下为 varchar)。