22,207
社区成员
发帖
与我相关
我的任务
分享
create function f_GetStr(@str nvarchar(100), @spliter nvarchar(1), @count int)
returns nvarchar(100)
as
begin
declare @s nvarchar(100)
declare @num int
set @s=@str
set @num=0
while charindex(@spliter, @str)>0
begin
set @num=@num+1
set @str=stuff(@str, 1, charindex(@spliter, @str), '')
if @count=@num
set @s=@str
end
if @count >@num
set @s= ''
return @s
end
go
declare @str nvarchar(100)
set @str = N'集团/北京(总经理室 General Manager Department)/北京有限公司/朝阳住宅部 East Area Residence Department/朝阳区域/新天地酒'
select dbo.f_GetStr(@str, '/', 3)
/*
朝阳住宅部 East Area Residence Department/朝阳区域/新天地酒
*/
select dbo.f_GetStr(@str, '/', 10)
drop function f_GetStr
create function f_str(@p varchar(2),@pos int,@s varchar(2000))
returns varchar(1000)
as
begin
declare @i int
set @i = charindex(@p,@s)
if @i = 0 return @s
while @pos > 0
begin
set @i = charindex(@p,@s)
if @i = 0
if @pos > 0
return ''
else
return @s
set @s = stuff(@s,1,@i,'')
set @pos = @pos - 1
end
return @s
end
go
declare @str varchar(1000)
set @str = '集团/北京(总经理室 General Manager Department)/北京有限公司/朝阳住宅部 East Area Residence Department/朝阳区域/新天地酒'
select dbo.f_str('/',3,@str)
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
朝阳住宅部 East Area Residence Department/朝阳区域/新天地酒
*/
select dbo.f_str('/',13,@str)
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1 行受影响)
*/
drop function f_str