数据库中的正则表达试

博客展示了数据库表数据的装载及多种查询操作。先创建临时表并插入数据,随后给出不同条件的查询示例,如求包含数字且长度为6的集合、包含中文且长度为6的集合等,还涉及只查数字或中文记录等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--数据装载
Create Table #T(Column1 varchar(20))
insert #T select '040011'
union all select '010021'
union all select '024综合'
union all select '021不知道'
union all select '031不'
union all select '不3'
union all select '知道'

--1:求包含数字,且长度为6的集合(包含了中文)

select * from #T  where Column1  like '%[0-9]%'  and len(Column1)=6

--结果
Column1             
--------------------
040011
010021
021不知道

(所影响的行数为 3 行)

--2:求包含中文,且长度为6的集合(包含了数字)

select * from #T  where Column1  like '%[^0-9]%'  and len(Column1)=6

--结果
Column1             
--------------------
021不知道

(所影响的行数为 1 行)

--3:求包含数字,且长度为6的集合(不包含中文)

select * from #T  where Column1 not like '%[^0-9]%'  and len(Column1)=6
--结果
Column1             
--------------------
040011
010021

(所影响的行数为 2 行)

--4 求所有记录只用中文的记录

select * from #T  where Column1 not like '%[0-9]%' 

--结果

Column1             
--------------------
知道

(所影响的行数为 1 行)

--5.求所有记录只有数字的记录

select * from #T  where Column1 not like '%[^0-9]%' 
--结果

Column1             
--------------------
040011
010021

(所影响的行数为 2 行)
或者

select * from #T  where isnumeric(Column1)=1

--结果

Column1             
--------------------
040011
010021

--6.查询数据中那条记录包含有中文

select case when Column1 like N'%[啊-座]%' then '包含中文' else '不包含中文' end
from #T

--结果

----------
不包含中文
不包含中文
包含中文
包含中文
包含中文
包含中文
包含中文

(所影响的行数为 7 行)

--7:只查询数字字段值

select * from #Twhere patindex('%[^-^0-9]%',Column1 )=0

--结果

Column1             
--------------------
040011
010021

(所影响的行数为 2 行)

--8:只查询中文字段值
select * from #T where patindex('%[^-^啊-座]%',Column1)=0

--结果

Column1             
--------------------
知道

(所影响的行数为 1 行)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值