SQL语句 怎么获取第一个逗号到第二个逗号之间或者第二个逗号到第三个逗号之间的字符串

比如‘abcd,1234,ABCD,efg’获取1234或者ABCD还有‘abcd,1234,ABCD,5678’获得5678的... 比如‘abcd,1234,ABCD,efg’获取 1234或者ABCD
还有‘abcd,1234,ABCD,5678’ 获得5678的
展开
 我来答
Cz丶168
2014-05-27 · TA获得超过994个赞
知道小有建树答主
回答量:1252
采纳率:75%
帮助的人:436万
展开全部
SELECT SUBSTRING_INDEX('abcd,1234,ABCD,efg',',',1) ; 结果 就是 abcd
SELECT SUBSTRING_INDEX('abcd,1234,ABCD,efg',',',1) ; 1234

后面的 以此类推
追问
SUBSTRING_INDEX 这是个方法 ?
kingboyf4
推荐于2016-06-11 · TA获得超过283个赞
知道小有建树答主
回答量:201
采纳率:100%
帮助的人:240万
展开全部
Create FUNCTION [dbo].UFN_SubIndex
 (
 @p_value nvarchar(100),
 @p_split nvarchar(1)=',',
 @p_index int
 )  
RETURNS nvarchar(50)
AS
Begin 
  DECLARE @CurrentIndex int;
  DECLARE @Length int;
     DECLARE @NextIndex int;
     DECLARE @ReturnText nvarchar(50);
     
     Set @CurrentIndex=1;
     Set @NextIndex=@p_index
     Set @Length=LEN(@p_value)
     if @p_index<0
        set @p_index=0;
     
     WHILE(@CurrentIndex<=@Length and @p_index>=0)
         BEGIN
             set @NextIndex=charindex(@p_split,@p_value,@CurrentIndex);
             set @p_index =@p_index-1;
             IF(@NextIndex=0 OR @NextIndex IS NULL)
    Begin
                 set @NextIndex=@Length+1;
                 set @ReturnText=substring(@p_value,@CurrentIndex,@NextIndex-@CurrentIndex);
                 set @CurrentIndex=@NextIndex+1;
                End
             Else
               Begin
                 set @NextIndex=@NextIndex;
                 set @ReturnText=substring(@p_value,@CurrentIndex,@NextIndex-@CurrentIndex);
                 set @CurrentIndex=@NextIndex+1;
               End
           END
     RETURN @ReturnText;
 
End
GO
select dbo.UFN_SubIndex('abcd,1234,ABCD,efg', ',', 2) 
select dbo.UFN_SubIndex('abcd,1234,ABCD,5678', ',', 3)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那时花开应自在
2014-05-27 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:72.1万
展开全部
如果逗号之间的字串长度固定,可以用substr函数,如果不固定,则需要自己写存储函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式