sql查询里 怎么拆分字符串(按“/”拆分)

字符串比如是:a/b/c/d1/2/3/4要分列成4行abcd1234和excel的“分列”效果一样注意是批量处理的上万条数据所以希望消耗资源少求语句怎么写... 字符串比如是:
a/b/c/d
1/2/3/4
要分列成4行
a b c d
1 2 3 4
和excel的“分列”效果一样
注意是批量处理的 上万条数据 所以希望消耗资源少
求语句 怎么写
展开
 我来答
du瓶邪
2015-06-15 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2855万
展开全部

先建立一个自定义函数,之个函数非常有用,建议收入自已的数据库
CREATE FUNCTION mysplit--将以某分隔符分段的字串,按指定的顺序号提取子串:  

 (@str nvarchar(2000),--源字串
   @sn int,    --提取序号
   @Deli varchar(1) --分隔符
  )
   RETURNS varchar(100)
AS
BEGIN
declare @first int,@last int,@result varchar(1000),@sn0 int
select @sn0=0,@first=0,@LAST=1,@str=@str+REPLICATE(@DELI,1)
while @sn0!=@sn
 begin
 select @sn0=@sn0+1,@first=@LAST,@last=charindex(@DELI,@str,@LAST)+1
 end
if @last-@first-1<0
set @result=''
else
SET @RESULT=SUBSTRING(@str,@FIRST,@LAST-@FIRST-1)
RETURN ( @RESULT )
END

查询方法:

DECLARE @A VARCHAR(100),@B VARCHAR(100),@C VARCHAR(100)
SELECT 
@A=DBO.MYSPLIT('A|B|C',1,'|') ,
@B=DBO.MYSPLIT('A|B|C',2,'|') ,
@C=DBO.MYSPLIT('A|B|C',3,'|') 
SELECT @A,@B,@C
BraveHeart_Fov
2012-07-27 · TA获得超过7942个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:679万
展开全部
自定义split函数

CREATE FUNCTION [dbo].[split]
(@str nvarchar(4000),@code varchar(10),@no int )
RETURNS varchar(200)
AS
BEGIN
declare @intLen int
declare @count int
declare @indexb int
declare @indexe int
set @intLen=len(@code)
set @count=0
set @indexb=1
if @no=0
if charindex(@code,@str,@indexb)<>0
return left(@str,charindex(@code,@str,@indexb)-1)
else
return @str
while charindex(@code,@str,@indexb)<>0
begin
set @count=@count+1
if @count=@no
break
set @indexb=@intLen+charindex(@code,@str,@indexb)
end
if @count=@no
begin
set @indexe=@intLen+charindex(@code,@str,@indexb)
if charindex(@code,@str,@indexe)<>0
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
else
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
end
return ''
END
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
饼滴苍9
2012-07-27
知道答主
回答量:43
采纳率:0%
帮助的人:18.3万
展开全部
itjob上有视频看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式