想请教下sql server 中如何判断一个字符串中某个字符是第几位?然后把这个字符前面的内容删除?
举例,有一个字符串如下"世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!"我想判断上述字符串中,第一个叹号号是第几位,接着第二个叹号是第几位。。。?这个应该要怎...
举例,有一个字符串如下
"世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!"
我想判断上述字符串中,第一个叹号号是第几位,接着第二个叹号是第几位。。。?这个应该要怎么做,需要用到什么函数呢?
用EXCEL的话就是用find函数来判断第几位的的,如用excel中输入”=FIND("!","世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!",1)“,则返回值就是4,即第四位。
这个在sql server应该用哪个函数实现?请各路高手指点一二,谢谢! 展开
"世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!"
我想判断上述字符串中,第一个叹号号是第几位,接着第二个叹号是第几位。。。?这个应该要怎么做,需要用到什么函数呢?
用EXCEL的话就是用find函数来判断第几位的的,如用excel中输入”=FIND("!","世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!",1)“,则返回值就是4,即第四位。
这个在sql server应该用哪个函数实现?请各路高手指点一二,谢谢! 展开
3个回答
展开全部
追问
看明白了,谢谢你,不过还是想追问一下如果我想让其输出结果为
世界杯!
德国队加油!
中国对也加油!
法国队加油!
日本队出局!
这个应该要怎么做呢?我只知道是要用到循环。。。
追答
昨天没看到,呵呵,其实也很好写
declare @str varchar(100),@temp varchar(20),@index int
set @str = '世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!'
while(CHARINDEX('!',@str) > 0)
begin
select @index = CHARINDEX('!',@str)
select @temp = SUBSTRING(@str,1,@index)
select @str = SUBSTRING(@str,@index+1,LEN(@str)-@index)
print @temp
end
写法和高级语言都差不多,记住两点就可以了
1、可以不写 ;
2、begin end就相当于高级语言中的{ }
2014-06-17
展开全部
Select charindex('!','世界杯!德国队加油!中国队也加油!法国队加油!日本队出局!')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行一下你就懂了
--第一个
select isnull(stuff('世界杯!德国队加油!中国队也加油!',1,charindex('!','世界杯!德国队加油!中国队也加油!'),''),'世界杯!德国队加油!中国队也加油!'),charindex('!','世界杯!德国队加油!中国队也加油!')
--第二个
select isnull(stuff('世界杯!德国队加油!中国队也加油!',1,charindex('!','世界杯!德国队加油!中国队也加油!',charindex('!','世界杯!德国队加油!中国队也加油!')+1),''),'世界杯!德国队加油!中国队也加油!'),
charindex('!','世界杯!德国队加油!中国队也加油!',charindex('!','世界杯!德国队加油!中国队也加油!')+1),
--第一个
select isnull(stuff('世界杯!德国队加油!中国队也加油!',1,charindex('!','世界杯!德国队加油!中国队也加油!'),''),'世界杯!德国队加油!中国队也加油!'),charindex('!','世界杯!德国队加油!中国队也加油!')
--第二个
select isnull(stuff('世界杯!德国队加油!中国队也加油!',1,charindex('!','世界杯!德国队加油!中国队也加油!',charindex('!','世界杯!德国队加油!中国队也加油!')+1),''),'世界杯!德国队加油!中国队也加油!'),
charindex('!','世界杯!德国队加油!中国队也加油!',charindex('!','世界杯!德国队加油!中国队也加油!')+1),
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询