首页 > 数据库技术 > 详细

sql 截取字符串与 截取字符串最长的字符串

时间:2015-10-23 10:18:15      阅读:343      评论:0      收藏:0      [点我收藏+]
1 declare @str nvarchar(50);
2 set @str=aa,32,22,55,7;
3 select charindex(,,@str,1) as 第一个逗号的索引值
4 select replace(replace(LEFT(@str,charindex(,,@str,1)-1),char(9),‘‘),char(32),‘‘) as 第一个值
5 select SUBSTRING(@str,charindex(,,@str,1)+1,len(@str)) as 从第一逗号开始截取出后面的字符串

 

截取字符串最长的字符串,用的是自定义函数

 

 1 ALTER function [dbo].[fun_ecom_string]
 2 (
 3     @str varchar(500),--传入的字符串
 4     @str2 varchar(50) --调用时候给空值,这个是用来保存最长字符串值的
 5 )
 6 returns varchar(50) as
 7 begin
 8     declare @result varchar(50)
 9     SET @str=replace(replace(@str,char(9),‘‘),char(32),‘‘)
10     SET @result=@str
11     --第一个逗号的索引值
12      if charindex(,,@str,1)=0 and len(@str2)=0
13          begin
14              SET @result=@str
15          end
16     else if charindex(,,@str,1)=0 and len(@str2)>0 
17         begin
18             if len(@result)<len(@str2)
19             begin
20                 SET @result=@str2
21             end
22         end
23      else
24          begin
25              SET @result=LEFT(@str,charindex(,,@str,1)-1) --第一个值
26              if len(@result)>len(@str2)
27              begin
28                  SET @str2=@result
29              end
30 
31              SET @str=SUBSTRING(@str,charindex(,,@str,1)+1,len(@str))--从第一逗号开始截取出后面的字符串
32              SET @result=dbo.fun_ecom_string(@str,@str2)
33          end
34             
35 
36     return @result
37 end

调用测试结果:

select [dbo].[fun_ecom_string]
(98997378119101444444444443,503180004665,503144444444800046651,18919173781191013,‘‘)

--结果:98997378119101444444444443

 

sql 截取字符串与 截取字符串最长的字符串

原文:http://www.cnblogs.com/goole/p/4903517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!