SQL逗号将参数中的值分隔为单独的行

Jhj*_*mth 1 sql t-sql sql-server

SQL问题

对于存储过程输入,例如:

  • @CustomerID ='1,2,3,4,'
  • @Address ='Oregon'
  • @City ='波特兰'

.我需要将值插入到单独的行中,如下所示:

    customerID | address city
 --------------+------------------
    1          |  Oregon Portland
    2          |  Oregon Portland
    3          |  Oregon Portland
    4          |  Oregon Portland
Run Code Online (Sandbox Code Playgroud)

我需要有关如何在单个参数中插入CSV值以分隔行的帮助.

Sql*_*Zim 6

使用Jeff Moden的CSV分离器功能:

declare @CustomerId varchar(8000) = '1,2,3,4,'
      , @Address    varchar(64)   = 'Oregon' 
      , @City       varchar(64)   = 'Portland'

select 
    CustomerId = d.Item
  , Address = @Address
  , City = @City
from [dbo].[delimitedsplit8K](@CustomerId,',') as d
where d.Item <> ''
Run Code Online (Sandbox Code Playgroud)

测试设置:http://rextester.com/COUJVK17338

收益:

+------------+---------+----------+
| CustomerId | Address |   City   |
+------------+---------+----------+
|          1 | Oregon  | Portland |
|          2 | Oregon  | Portland |
|          3 | Oregon  | Portland |
|          4 | Oregon  | Portland |
+------------+---------+----------+
Run Code Online (Sandbox Code Playgroud)

拆分字符串参考: