@picTag nvarchar(200)
AS
declare @str nvarchar(200)
set @str='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg'
str是用空格隔开的,循环要读取
a936d1ed-e567-486d-9899-01e0a6020f97.jpg
659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg
6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg
我的思路是
while (条件)
@strname=a936d1ed-e567-486d-9899-01e0a6020f97.jpg
不知道怎么写?
AS
declare @str nvarchar(200)
set @str='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg'
str是用空格隔开的,循环要读取
a936d1ed-e567-486d-9899-01e0a6020f97.jpg
659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg
6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg
我的思路是
while (条件)
@strname=a936d1ed-e567-486d-9899-01e0a6020f97.jpg
不知道怎么写?
declare @str nvarchar(200)
set @str='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg'
set @str = replace(@str,' ',' ''union all select'' ')
exec ('select ''' + @str + '''')
set @str='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg'
declare @pos int
set @pos = CHARINDEX( ' ' , @str ,0)
while( @pos > 0)
begin
select left(@str , @pos)
set @pos = CHARINDEX( ' ' , @str ,0)
set @str = right(@str , len(@str) - @pos)
end
给个结果也不怎么感觉实用,自己选择吧
功能:实现split功能的函数
*/create function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as begin
declare @i intset @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
endif @inputstr <> '\'
insert @temp values(@inputstr)return
end
go--调用declare @s varchar(1000)set @s='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg' select * from dbo.fn_split(@s,' ')drop function dbo.fn_split
/*
a
------------------------------------------------
a936d1ed-e567-486d-9899-01e0a6020f97.jpg
659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg
6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg(所影响的行数为 3 行)
*/
declare @str nvarchar(200)
declare @name nvarchar(100)
set @str='a936d1ed-e567-486d-9899-01e0a6020f97.jpg 659c2e3d-9f3e-4c2a-aaf3-5be593017586.jpg 6a0f4c7f-542b-4eb3-8dfc-7dc30013bf94.jpg'
set @name=''
while len(@str)>0
begin
if substring(@str,1,1)='' begin select @name set @name='' end
else set @name=@name+substring(@str,1,1)
set @str=substring(@str,2,len(@str)-1)
end
select @name
end
速度更快,呵呵