1. 程式人生 > >SQL字串分割多行

SQL字串分割多行

原型資料:

需求:

按逗號或分號將欄位IT_Description值分割為多行,填充下拉列表SQL實現指令碼

SELECT b.vv FROM( SELECT CONVERT(XML,'<n>'+REPLACE(REPLACE(IT_Description,';',','),',','</n><n>')+'</n>') AS xmlval  FROM tb_InvoiceType   WHERE IT_code ='D' AND (IT_Comp ='220') ) a CROSS APPLY(SELECT k.n.value('.','nvarchar(80)') vv FROM a.xmlval.nodes('n') k(n)) b  

輸出結果:

基本原理:先將該欄位值統一替換為逗號分割,再將逗號分割替換轉為XML資料型別,再利用xml轉為多個行,SQL SERVER2005 XML 使用不是很清楚,後面瞭解後再更新xml參考:https://www.cnblogs.com/fly12300/p/4151670.html
--------------------- 
作者:加菲貓Block 
來源:CSDN 
原文:https://blog.csdn.net/leo628/article/details/79730937 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

SQLSERVER , 逗號 分割為多行


方法1

select INTERNAL_FAULT_REASON from TEST_TABLE ;
select substring(TEST_COL+',',number,charindex(',',TEST_COL+',',number)-number)
from TEST_TABLE ,master..spt_values s
where type='p' and number>0 and substring(','+TEST_COL,number,1)=','

查詢結果: 


需要顯示行號可以加個 

row_number()over(order by getdate())

需要其他欄位自行新增
--------------------- 
作者:baojiangfeng 
來源:CSDN 
原文:https://blog.csdn.net/baojiangfeng/article/details/74531590 
版權宣告:本文為博主原創文章,轉載請附上博文連結!