回答

收藏

TSQL:将一行中所有字段的值合并为字符串

技术问答 技术问答 130 人阅读 | 0 人回复 | 2023-09-14

我需要把所有的单行而不是空值放在字符串里,比如) h' Z  ?/ _( P
表:
, I1 k9 Q7 d( |  KCustomerName  Address ZipAlex          Moscow  1234导致:0 j2 p1 `( r$ v9 S+ i2 d: D
CustomerName: AlexAddress: MoscowZip: 1234重要说明-我不知道字段名称/类型,因此它应该遍历所有字段,并且所有非null列表中将添加所有值。
  b" e! J2 N9 `( _1 \/ U# O  P$ ^0 w好像可以用xquery这样做,却找不到正确的语法。有什么提示吗?
3 j) U7 u( x& A谢谢!
& ~! M' t. j! X& F  Z4 {0 b6 L                                                                2 }( C$ v  K, D* ?8 {
    解决方案:                                                                6 U" y" \8 ^! M2 F
                                                                select T2.N.value(‘local-name(.)’,‘nvarchar(128)’) ’: ‘
- n: @) l. R' ~2 ^% T                                            T2.N.value(‘.’,‘nvarchar(max)’)
8 U% ~% r/ ^/ m; F& H% j- Y                from (select *          from YourTable
9 u/ R, l9 j2 |( m; \! n% V                                        for xml path(‘’),type) as T1(X)
; y$ a3 b. q1 T# j) l4 X! T, ]                        cross apply T1.X.nodes(‘/*’) as T2(N)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则