
字符串处理
sdhdy
对SQL感兴趣,也乐意在SQL上互相交流。但不会刻意去做技术高手,也不会去做钻石级专家。别忘了,SQL只是人生中之一小部分。。。。。。。。
展开
-
如何取得字符在字符串中最后一次出现的位置?
DECLARE @str varchar(8000),@search_str varchar(10)SELECT @str = abcefbpqbbpef,@search_str = bpSELECT CASE WHEN CHARINDEX(@search_str, @str) = 0 THEN 0ELSE LEN(@str) - CHARINDEX(REVERSE(@sear原创 2009-05-21 13:35:00 · 1247 阅读 · 0 评论 -
只取数字的函数
create function GetNum(@a varchar(50))returns varchar(50)asbeginwhile patindex(%[^1-9]%,@a)>0begin set @a=stuff(@a,patindex(%[^1-9]%,@a),1,)endreturn @aendgoselect dbo.GetNum(2a p9 asdf1234k原创 2009-05-22 18:15:00 · 1558 阅读 · 1 评论 -
字符串分割函数
create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(F1 varchar(100))as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSep原创 2009-05-19 21:51:00 · 638 阅读 · 2 评论 -
如何统计一串数字中,出现重复数的个数?
比如一串数字14,23,64,23,14,20,30 其中14重复两次,23重复两次,其余没有重复。=================================declare @sql varchar(1000)declare @str varchar(100)set @str=14,23,64,23,14,20,30select @sql=select col,count原创 2009-05-22 18:08:00 · 3298 阅读 · 1 评论 -
把IP地址补全
--把IP地址:127.0.0.1补全。select right(000+ParseName(LogIp,4),3)+. +right(000+ParseName(LogIp,3),3)+. +right(000+ParseName(LogIp,2),3)+. +right(000+ParseName(LogIp,1),3) fr原创 2009-05-22 18:12:00 · 1879 阅读 · 1 评论 -
只取字母的函数
create function GetStr(@a varchar(50))returns varchar(50)asbeginwhile patindex(%[^a-z]%,@a)>0begin set @a=stuff(@a,patindex(%[^a-z]%,@a),1,)endreturn @aendgoselect dbo.getstr(2a p9 asdf1234k原创 2009-05-22 18:27:00 · 755 阅读 · 2 评论 -
合并多行的某一列值
create function StrLink(@id int)returns varchar(8000)asbegin declare @sql varchar(8000) set @sql= select @sql=@sql+,+colname from tablename where id=@id set @sql=stuff(@sql,1,1,) return @sql原创 2009-05-22 18:36:00 · 428 阅读 · 1 评论 -
分拆字符串
有一字段值为:a,b,c ,想要得到如下:id name 1 a 2 b 3 c 在SQL中如何实现呢?-----------------------------------------------declare @str varchar(8000) set @str = a1,b1,c2,d1,e3,f5 set @str = select name=+re原创 2009-05-22 18:38:00 · 682 阅读 · 1 评论 -
将一个字符串分成多列
设有一字符串 111-222-333-444-555-666-777-888 用一SQL语句将其变为8个字段 ======================================declare @str varchar(100)set @str = 111-222-333-444-555-666-777-888set @str = select +原创 2009-05-30 17:29:00 · 998 阅读 · 2 评论