【问题标题】:tsql for xml string concat - How it workstsql for xml string concat - 它是如何工作的
【发布时间】:2018-03-06 04:18:10
【问题描述】:

我有以下运行良好的代码:

    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() 是什么?类似于...选择方法?它有什么作用?任何参考链接也将不胜感激!

【问题讨论】:

标签: sql string tsql aggregate-functions string-concatenation


【解决方案1】:

您使用FOR XML PATH 将您的表格转换为XML。 XML 数据在 SQL Server 中由XML data type 表示,并且可以在此数据类型上处理不同methods 的列表。其中一种方法是value method,它有两个参数:XQuery 和数据类型。该方法允许您将 XML 中的数据转换为其他格式(在您的情况下为 varchar)。

【讨论】:

    【解决方案2】:

    FOR XML 将返回一个 XML 数据类型; .value(...,...) 提取 XML 值并将其转换为定义的数据类型。在您的情况下,根节点('.')中的所有内容都转换为 varchar(max)

    对于一些博客/链接,请查看Aaron Bertrand's postAdam Machanic's,同时注意STRING_AGG SQL2017 中的新功能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多