Sqlserver——查詢技巧/優化方案——單列按指定符號拆分成多行

直接貼代碼,下面是例子,假如業務表的結構如下

1行id 需要將對應的 Split字段拆分多行來顯示

------創建一個臨時表--------存儲數據
CREATE TABLE #tab_1
(
id INT,--主ID
name NVARCHAR(20)---拆分出來的每個子ID
)


-------(#B業務表)------循環業務表的所有主ID

DECLARE @i INT=1 
DECLARE @q INT=(SELECT MAX(id) FROM #B)


WHILE @i<=@q 
BEGIN
-----------循環過程把每個主ID對應的子ID數據,和主ID一起,作爲兩個字段一起插入臨時表

INSERT INTO #tab_1
        ( id, name )
SELECT 
@i,
Value 
FROM dbo.plm_liuz_fn_Split1((SELECT Split FROM #b WHERE id=@i),'-')

SET @i=@i+1
END
SELECT * FROM #tab_1

最後的顯示結果就爲:

根據Split的分隔符拆分成多行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章