TSQL选择逗号列表到行

Rya*_*Rya 5 t-sql

如何在一行中输入逗号列表字段并将其显示在列中?

例如,

ID | Colour
------------
1  | 1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

至:

ID | Colour
------------
1  | 1 
1  | 2
1  | 3
1  | 4
1  | 5
Run Code Online (Sandbox Code Playgroud)

And*_*mar 5

解决此问题的常用方法是创建拆分功能.您可以从Google获取一个,例如来自SQL Team的一个.创建函数后,您可以使用它:

create table colours (id int, colour varchar(255))
insert colours values (1,'1,2,3,4,5')

select  colours.id
,       split.data
from    colours
cross apply
        dbo.Split(colours.colour, ',') as split
Run Code Online (Sandbox Code Playgroud)

这打印:

id    data
1     1
1     2
1     3
1     4
1     5
Run Code Online (Sandbox Code Playgroud)