我有字符串“ABCD.EFGH.IJKL.MNOP”。我正在寻找一个我可以获得的SQL查询
第一部分(“ABCD”),第二部分(“EFGH”),第三部分(“IJKL”),第四部分(“LMNOP”)来自大数据。必须牢记这一表现。
谢谢
此致 詹姆斯
答案 0 :(得分:1)
Jeff Moden最近撰写了一系列关于此问题的文章,其中包括对最常见的填补这一共同需求的尝试的性能比较。请参阅最新一期以及他的DelimitedSplit8K函数的最新版本http://www.sqlservercentral.com/articles/Tally+Table/72993/
答案 1 :(得分:0)
我假设你正在寻找MSSQL。您可以使用返回表变量的用户定义函数来执行此操作。试试这个
CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (items varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null return
while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String
if(len(@slice)>0)
insert into @temptable(Items) values(@slice)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end
您可以使用此功能是您的SQL查询
select * from dbo.Split('Test,Tested,To be Tested',',')
答案 2 :(得分:0)