回答

收藏

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

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

我需要把所有的单行而不是空值放在字符串里,比如& v# G6 S2 ]# [5 p1 n2 j2 g
表:  U6 V. P( c, m' j& b  k
CustomerName  Address ZipAlex          Moscow  1234导致:
3 A8 y& I2 b8 B) K7 Y/ dCustomerName: AlexAddress: MoscowZip: 1234重要说明-我不知道字段名称/类型,因此它应该遍历所有字段,并且所有非null列表中将添加所有值。0 i+ n" R' Z( R: N0 `
好像可以用xquery这样做,却找不到正确的语法。有什么提示吗?
) u! E1 b1 Q+ l6 e& y- ~, K谢谢!
# F( _  ^2 M" x                                                               
1 ^3 B8 d1 O! R3 J3 [; w+ n    解决方案:                                                               
+ S0 ?7 I; e* ~) F! l                                                                select T2.N.value(‘local-name(.)’,‘nvarchar(128)’) ’: ‘
( ]/ p! y* k8 x! _$ u                                            T2.N.value(‘.’,‘nvarchar(max)’)
' l2 e% A3 R1 x. X8 ^' Y3 T( M                from (select *          from YourTable5 R3 g8 `  ]: O& E+ j/ ~+ M
                                        for xml path(‘’),type) as T1(X)
5 L5 j% e1 n- ^                        cross apply T1.X.nodes(‘/*’) as T2(N)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则