SQL 一列转多行

SELECT ProductNo ,
ProductCNName ,
D.[value] AS SelectedProduct
FROM dbo.TPRODUCT A WITH ( NOLOCK )
LEFT JOIN ( SELECT [value] = CAST('<v>' + REPLACE(product_code, ',',
'</v><v>') + '</v>' AS XML)
FROM TRULE WITH ( NOLOCK )
) temp
OUTER APPLY ( SELECT [value] = T.C.value('.', 'varchar(50)')
FROM temp.[value].nodes('/v') AS T ( C )
) D ON '''' + A.ProductNo + '''' = D.[value]

原来一列的值

'00306','00031'

 

转换后 两行

'00306'
'00031'

 

posted @ 2017-06-23 15:23  Amity1006  阅读(407)  评论(0编辑  收藏  举报