這篇部落格宗旨在於處理如何使用sql把帶逗號的資料轉換為表中的行以及將表中的行拼接成用逗號組成的資料。
具體**如下功能寫在注釋裡
--將有逗號的資料轉換為乙個表儲存id加資料
godeclare @text varchar(200)
set @text = 'test1,test2'
declare @xml xml
set @xml = convert(xml,''+ replace(@text,',','
')+'')
create table #tmp1
( iid varchar(50),
stext varchar(200)
)insert into #tmp1
select newid(),b.value
from (select @xml as 'xml') a
select * from #tmp1
go--將乙個table中某一列的資料拼成逗號分隔的形式
go create table #tmp2
( iid int,
stext varchar(200)
) insert into #tmp2( iid, stext )
values ( 1, 'test1');
insert into #tmp2( iid, stext )
values ( 1, 'test2');
declare @tmp2res varchar(200)
set @tmp2res = (select stext+',' from #tmp2 for xml path(''))
set @tmp2res = substring(@tmp2res,0,len(@tmp2res)-1)
select @tmp2res
go
執行結果如圖
SQL 欄位裡有逗號隔開的資料的取值
table 1 id code 1 001 2 001,002 3 001,002,003 table 2 code name 001 數學 002 體育 003 美術 要求結果 id name 1 數學 2 數學,體育 3 數學,體育,美術 測試資料 with table1 id,code as ...
sql 傳入引數為逗號分隔的字串處理方法
寫了個儲存過程,中間用到了類似這種寫法 select from user where id in 1,2,3 其中 1,2,3 是從外面傳進來的引數,就這樣執行報錯 1,2,3 轉換為int型別出錯,因為id是int型別的 想了個比較笨的解決方法 思路 迴圈將傳進來的引數 1,2,3 分割並轉換為i...
mysql查詢包含逗號的資料,並逗號拆分為多行展現
在做系統開發的時候,有可能是由於之前的遺留問題,導致在資料入庫的時候,將多個資料以逗號分隔的實行,儲存在一條資料中,例如 idvalue 1yang,zheng,song 2zhao,qian,sun 3jiang 現在因為新的需求,需要將這些資料以下邊的方式儲存在資料庫中,方便查詢和處理 idva...