微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SQLserver中stuff 函数用法

--提取数字
IF OBJECT_ID('DBO.GET_NUMBER'IS NOT NULL
DROP FUNCTION DBO.GET_NUMBER
GO
CREATE FUNCTION DBO.GET_NUMBER(@S VARCHAR(100))
RETURNS 100)
AS
BEGIN
WHILE PATINDEX(%[^0-9]%',@S> 0
set @s=stuff(@s,patindex(@s),1,0)">'')
END
RETURN @S
测试PRINT DBO.GET_NUMBER(呵呵ABC-12,3ABC')
123
--
------------------------------------------------------------------提取英文DBO.GET_STRFUNCTION DBO.GET_STR
FUNCTION DBO.GET_STR(%[^a-z]%PRINT DBO.GET_STR(呵呵ABC123ABC提取中文DBO.CHINA_STRFUNCTION DBO.CHINA_STR
FUNCTION DBO.CHINA_STR(NVARCHAR(%[^吖-座]%SET @S = STUFF(@S,0)">@S),NPRINT DBO.CHINA_STR(过滤重复字符DBO.disTINCT_STRFUNCTION DBO.disTINCT_STR
FUNCTION DBO.disTINCT_STR(100),0)">@SPLIT 50))
IF IS NULL RETURN(NULL)
DECLARE @NEW 50),0)">@INDEX INT,0)">@TEMP 50)
IF LEFT(1)<>@SPLIT
= @SPLIT+RIGHT(@SCHARINDEX(@SPLIT,0)">@S)>0 AND LEN(<>1
@INDEX @S)
@TEMP = @INDEX+@SPLIT)))
NULL 
@NEW ISNULL(@NEW,0)">'')@TEMP
ELSE
REPLACE(@TEMP,0)">@SPLIT),0)">@SPLIT))-RETURN RIGHT(@NEW)-1),255)">LEN(1))1)
PRINT DBO.disTINCT_STR(A,A,B,C,,128)">A,C过滤重复字符2DBO.disTINCT_STR2FUNCTION DBO.disTINCT_STR2
FUNCTION DBO.disTINCT_STR2(varchar(8000))
@NEW+LEFT(@NEW
SELECT DBO.disTINCT_STR2(AABCCDABCDGO

DBO.SPLIT_STRFUNCTION DBO.SPLIT_STR
FUNCTION DBO.SPLIT_STR(
8000),      包含多个数据项的字符串int,             获取的数据项的位置10)     数据分隔符
)
@SPLITLEN int
SELECT @SPLITLENA')2
WHILE 1 @SPLIT)=@SPLITLEN,255)">RETURN(ISNULL(''))
PRINT DBO.SPLIT_STR(AA|BB|CC2,0)">|--
GO

标签s

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐