簡體   English   中英

如果列包含逗號分隔值,請創建單獨的行

[英]Make a separate row if a column contains comma-separated value

假設我們有一個簡單的選擇查詢,它返回如下所示的結果

   FirstName          LastName                     PayScale
   -----------        ------------                ---------------
    Craig              L                             150000
    Alice,Lisa         simons                        100000

所以如果我們用逗號分隔的名字,那么我想要這樣的結果

   FirstName          LastName                     PayScale
   -----------        ------------                ---------------
    Craig              L                             150000
    Alice              simons                        100000
    Lisa               simons                        100000

您可以將查詢編寫為:

DECLARE @employee TABLE (FirstName  VARCHAR(100),
                         LastName   VARCHAR(100),
                         PayScale INT)

INSERT INTO @employee VALUES 
('Craig','L',150000) , 
('Alice,Lisa','simons',100000)



SELECT Split.a.value('.', 'VARCHAR(100)') AS FirstName  , LastName  ,PayScale
       FROM  (SELECT  CAST ('<M>' + REPLACE(FirstName, ',', '</M><M>') + '</M>' 
                             AS XML) AS FirstName ,  LastName    ,PayScale
               FROM  @employee) 
       AS A 
CROSS APPLY FirstName.nodes ('/M') AS Split(a)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM