列包含“,”的重复行
Duplicate rows where a column contains ","
我有如下数据
name subject
a m1
b m2
c m1, m3
d m4, m5, m6
e m7
我想复制 subject
列包含 ,
的整行。原始数据的列比此处显示的要多得多。我将在 subject
列中复制等于 ,
数量的行,因此我将重复 c
1 次和 d
2 次
我不知道 subject
列中有多少个单元格会有 ,
并且 subject
列的单元格中的值数量没有上限
然后我想在重复的行上只保留一个值,这样主题列中的所有值都出现一次
name subject
a m1
b m2
c m1
c m3
d m4
d m5
d m6
e m7
如果您是 运行 SQL Server 2016 或更高版本,您可以使用 string_split()
:
select t.name, value as subject
from mytable t
cross apply string_split(subject, ', ')
string_split()
returns 一个唯一的列,称为 value
.
我有如下数据
name subject
a m1
b m2
c m1, m3
d m4, m5, m6
e m7
我想复制 subject
列包含 ,
的整行。原始数据的列比此处显示的要多得多。我将在 subject
列中复制等于 ,
数量的行,因此我将重复 c
1 次和 d
2 次
我不知道 subject
列中有多少个单元格会有 ,
并且 subject
列的单元格中的值数量没有上限
然后我想在重复的行上只保留一个值,这样主题列中的所有值都出现一次
name subject
a m1
b m2
c m1
c m3
d m4
d m5
d m6
e m7
如果您是 运行 SQL Server 2016 或更高版本,您可以使用 string_split()
:
select t.name, value as subject
from mytable t
cross apply string_split(subject, ', ')
string_split()
returns 一个唯一的列,称为 value
.