sql 截取第三个逗号前的sql语句的写法

 我来答
百度网友9d41c53
2017-01-19 · TA获得超过489个赞
知道小有建树答主
回答量:359
采纳率:73%
帮助的人:211万
展开全部
declare @string Nvarchar(100),@string1 Nvarchar(100),@location int
set @location =0
set @string =N'第一个逗号,第二个逗号,第三个逗号,第四个逗号,'
set @string1 =N'第一个逗号,第二个逗号,第三个逗号,第四个逗号,'

print substring(@string, 1,charindex(',',@string))
set @location =@location +charindex(',',@string)
set @string =substring(@string,charindex(',',@string)+1,len(@string))

print substring(@string, 1,charindex(',',@string))
set @location =@location+charindex(',',@string)
set @string =substring(@string,charindex(',',@string)+1,len(@string))

print substring(@string, 1,charindex(',',@string))
set @location =@location+charindex(',',@string)
set @string =substring(@string,charindex(',',@string)+1,len(@string))

print substring(@string1, 1,@location)

-----我从一个逗号的都给你举例出来了
追问
大哥,你这也太专业了吧 
SELECT **** FROM ****,能不能这种写
追答
你这个的难点在于,我没法通过一个sql语句知道“第三个逗号的位置”。

重点在于两个方法 charindex 和 substring ,要是第一个逗号那就简单了。
我给你举一个逗号的例子

打个比方,你有一张table叫student,里面有 id,name,interesting
有记录
1; 张三 ; 篮球,足球,乒乓球,羽毛球
2; 李四 ;看书,旅游,跑步,健身
你要找每个人interesting的第一个项目

select id,name,substring(interesting,1, charindex(',',interesting)) from table
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式