先自定義乙個簡單的表(tb01)資料:
select tb01.cc from (select '香港' cc union all select '上海' cc union all select '北京' cc) tb01
1、列表某列資料轉逗號分隔的字串(這裡的分隔符任意,以英文逗號舉例)
declare @_text varchar(max)
set @_text = stuff((select ','+tb01.cc from tb01 for xml path('')),1,1,'')
這裡兩個知識點:
a、stuff函式:作用是去除拼接的字串最前面的逗號
b、for xml path:替換節點,引數如果是'',將節點定義成空,如果是'***',節點定義成。這裡不妨可以試下
select * from tb01 for xml path 無參
select * from tb01 for xml path('')
2、逗號分隔的字串轉列表資料
select
b.text --4.查出text值
from
(select [text]=convert(xml,''+replace(@_text ,',','
')+'
'))a
--1.將逗號用xml標籤替換,然後轉換成xml格式
(select [text]=c.v.value('.','nvarchar(100)') from a.[text].nodes('/root/v')c(v))b
--3.將xml內容按照標籤替換拆分節點並查出每個節點的value值標記為text
當然網上還有其他方法,個人感覺這兩種方法更適合自己,簡單易懂! SQLServer字串拆分並獲取某分隔符的字串
create function dbo f splitstr s varchar 8000 待分拆的字串 split varchar 10 資料分隔符 returns re table col varchar max as begin declare splitlen int 取分隔符的長度,在分隔...
SqlSerVer 列與逗號分隔字串 互相轉換
在專案中,使用sqlserver資料庫,有乙個需求,需要將資料庫的某一列,轉換成逗號分隔的字串。同時,需要將處理完的字串,轉換成為一列。經過查閱資料與學習,通過以下方式可以實現如上所述需求 1 編寫乙個錶值函式,傳入乙個字串,實現轉換成列,條件以逗號分隔 任何符號都可以自定義 空格分隔的字串 cre...
SqlSerVer 列與逗號分隔字串 互相轉換
在專案中,使用sqlserver資料庫,有乙個需求,需要將資料庫的某一列,轉換成逗號分隔的字串。同時,需要將處理完的字串,轉換成為一列。經過查閱資料與學習,通過以下方式可以實現如上所述需求 1 編寫乙個錶值函式,傳入乙個字串,實現轉換成列,條件以逗號分隔 任何符號都可以自定義 複製 空格分隔的字串 ...