11月4号的随笔

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

--数据装载
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 行)

posted on 2005-12-05 11:14  潘伟  阅读(308)  评论(0编辑  收藏  举报