日期:2014-05-18 浏览次数:20824 次
select * from tb_name where ID not like '%[a-zA-Z0-9]%' //标点怎么判断呢??
select * from tb_name
where patindex('%[^a-zA-Z0-9]%')=0
------解决方案--------------------
-- 建函数AOKMOKM
create function AOKMOKM
(@y varchar(50))
returns char(1)
as
begin
declare @i int, @j int
select @i=1, @j=len(@y)
while(@i<=@j)
begin
if patindex('[吖-做]',substring(@y,@i,1))=0
return 'N'
select @i=@i+1
end
return 'Y'
end
----- 测试 -----
-- 只包含汉字,而没有 数字、字母、标点符号
select dbo.AOKMOKM('迪卡') 'r'
r
----
Y
-- 只包含汉字数字,而没有字母、标点符号
select dbo.AOKMOKM('迪6卡') 'r'
r
----
N
-- 只包含汉字数字字母,而没有标点符号
select dbo.AOKMOKM('d迪6卡') 'r'
r
----
N
-- 只包含汉字标点符号,而没有数字字母
select dbo.AOKMOKM('迪,卡') 'r'
r
----
N
-- 只包含汉字,而没有数字字母标点符号
select dbo.AOKMOKM('唐诗三百首') 'r'
r
----
Y