列包含“,”的行重复

问题描述

我的数据如下

std::string line;
while (std::getline(inputstream,line)) 
{
    unsigned long tmp = std::stoul(line,&numchars,16);
    process(tmp);
}

我想复制列df.loc[df['FinalStartPunch'].dt.hour == 0,'FinalStartPunch'] = df['FinalStartPunch'] - pd.timedelta(1,unit='D') 包含name subject a m1 b m2 c m1,m3 d m4,m5,m6 e m7 的整个行。原始数据的列多于此处显示的列。我将在subject列中复制等于,的行,因此我将重复, 1次和subject 2次

我不知道c列中有多少个单元格,d列中的单元格中的值数没有上限

然后我想在重复的行上仅保留一个值,以便主题列中的所有值都显示一次

subject

解决方法

如果您运行的是SQL Server 2016或更高版本,则可以使用string_split()

select t.name,value as subject
from mytable t
cross apply string_split(subject,',')

string_split()返回一个唯一的列,称为value