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

简介: 前天写了篇《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')

结果:

90.jpg

提取中文字符

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

结果:


91.jpg

相关文章
|
SQL 关系型数据库 MySQL
解决sql插入字符串中包含‘单引号问题
解决sql插入字符串中包含‘单引号问题
666 2
解决sql插入字符串中包含‘单引号问题
小数转成百分数,日期字符串互相转换,这几个SQL问题该如何解决?(上)
SQL在使用过程中,经常会遇到一些奇奇怪怪的小问题,今天给大家总结一下常见的几个问题该如何处理。
小数转成百分数,日期字符串互相转换,这几个SQL问题该如何解决?(上)
|
4月前
|
SQL JSON 关系型数据库
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
54 0
|
4月前
|
SQL JSON Apache
Apache Flink SQL目前还不支持直接解析JSON字符串并将其转换为预期的数据类型
Apache Flink SQL目前还不支持直接解析JSON字符串并将其转换为预期的数据类型
157 1
|
4月前
|
SQL XML Java
记一次在mybatis中使用String字符串作为sql语句 in关键字 后面参数的事故
记一次在mybatis中使用String字符串作为sql语句 in关键字 后面参数的事故
70 0
|
8月前
|
SQL
sql server从某个字符开始截取后面的字符串
sql server从某个字符开始截取后面的字符串
130 0
|
10月前
|
SQL 存储 数据库连接
【批量添加】-拼接sql字符串
【批量添加】-拼接sql字符串
100 0
|
SQL
01 反引号“`”的使用-ES6模板字符串&SQL区分关键字
1 在SQL中反引号的作用-区分关键字 当属性名与SQL关键字冲突时使用反引号将属性名扩起来,用于区分关键字
94 0
|
SQL 前端开发 Java
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
如何将分隔数据转换为多值IN列表、如何按字母顺序排列字符串、如何对字符串字母去重后按字母顺序排列字符串、如何删除字符串中的字符保留数字。【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。这篇文章还是介绍的字符串处理案例,还是那句话,这些操作太太太常见了。后面还会写,而且是更麻烦更难的需求。
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起
本篇文章讲解的主要内容是:***遍历拆分字符串为单个字符、字符串中包含引号如何转译(q-quote特性)、计算字符在字符串中出现的次数、使用translate从字符串中快速删除替换不需要字符的巧妙写法、使用正则表达式regexp_replace将字符和数字数据分离、使用正则表达式regexp_like查询只包含数字或字母型的数据***
【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起