SQL如何提取字符串中的中文和数字?

提取数字

我们还是创建一个自定义函数,具体代码如下:

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')

结果:

SQL如何提取字符串中的中文和数字?

提取中文字符

从提取字母和数字中,不知大家是否看出规律来了,就是在使用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')

结果:


SQL如何提取字符串中的中文和数字?

上一篇:MySQL线程处于Waiting for table flush的分析


下一篇:《gradle 用户指南》中文版 第一部分、关于Gradle