Sql 使用每个CSV值创建行
如果不使用CTE,我如何更改这些逗号分隔的值并得到这样的结果,因为我使用的是SQL SERVER 2000,如果不使用循环会更好,因为后者的数据将是巨大的Sql 使用每个CSV值创建行,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,如果不使用CTE,我如何更改这些逗号分隔的值并得到这样的结果,因为我使用的是SQL SERVER 2000,如果不使用循环会更好,因为后者的数据将是巨大的 ID Dates Qty Secs DayPart CO138491-02 06/10/2013,06/11/2013,06/12/2013,06/13/2013 4 6.00 Morning 如果
ID Dates Qty Secs DayPart
CO138491-02 06/10/2013,06/11/2013,06/12/2013,06/13/2013 4 6.00 Morning
如果您不想使用CTE或循环,请尝试使用带有附加数字表的方法,请提供任何提示或限制我搜索的链接 看 比如:
CO138491-02 06/10/2013 4 6.00 Morning
CO138491-02 06/11/2013 4 6.00 Morning
CO138491-02 06/12/2013 4 6.00 Morning
CO138491-02 06/13/2013 4 6.00 Morning
如果您不想使用CTE或循环,请尝试使用附加数字表的方法: 看 比如:
CO138491-02 06/10/2013 4 6.00 Morning
CO138491-02 06/11/2013 4 6.00 Morning
CO138491-02 06/12/2013 4 6.00 Morning
CO138491-02 06/13/2013 4 6.00 Morning
试试这个
CREATE FUNCTION inline_split_me (@param varchar(7998)) RETURNS TABLE AS
RETURN(SELECT substring(',' + @param + ',', Number + 1,
charindex(',', ',' + @param + ',', Number + 1) - Number - 1)
AS Value
FROM Numbers
WHERE Number <= len(',' + @param + ',') - 1
AND substring(',' + @param + ',', Number, 1) = ',')
检查以下链接以供参考
试试这个
CREATE FUNCTION inline_split_me (@param varchar(7998)) RETURNS TABLE AS
RETURN(SELECT substring(',' + @param + ',', Number + 1,
charindex(',', ',' + @param + ',', Number + 1) - Number - 1)
AS Value
FROM Numbers
WHERE Number <= len(',' + @param + ',') - 1
AND substring(',' + @param + ',', Number, 1) = ',')
检查以下链接以供参考
事实上,我不想要一个拆分器,而是每个值都有拆分的字符串,此外,因为它是一个巨大的数据,所以使用函数是否明智?我不知道其他方法,除了本例中的函数。最有效的方法是使用CLR函数,但它在MSSQLS2000中不起作用。事实上,我不想要一个拆分器,而是每个值都有拆分的字符串。此外,由于数据量很大,使用函数明智吗?我不知道其他方法,除了本例中的函数。最有效的方法是使用CLR函数,但它在MSSQLS2000中不起作用