提取数字
我们还是创建一个自定义函数,具体代码如下:
CREATE FUNCTION DBO.GET_NUMBER(@Str VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^0-9]%',@Str) > 0 BEGIN SET @Str=stuff(@Str,PATINDEX('%[^0-9]%',@Str),1,'') END RETURN @Str END GO
测试自定义函数
SELECT dbo.GET_NUMBER('SQL数1据2库3开4发5')
结果:
提取中文字符
从提取字母和数字中,不知大家是否看出规律来了,就是在使用PATINDX函数时,后面第一个参数会相应的改变。字母的是[a-z],数字的是[0-9],那中文的是什么呢?看下面的代码
CREATE FUNCTION DBO.GET_CHINESE(@Str NVARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^吖-座]%',@Str) > 0 SET @Str = STUFF(@Str,PATINDEX('%[^吖-座]%',@Str),1,N'') RETURN @Str END GO
测试自定义函数
SELECT dbo.GET_CHINESE('SQL数1据2库3开4发5')
结果: