34,590
社区成员
发帖
与我相关
我的任务
分享
--1.用程序控制比较好
--2.或创建约束
create table test(a varchar(20) check(patindex('%[0-9]%',a)=0 or patindex('%[0-9][啊-咗]%',a)=0))
create function T_check(@s nvarchar(100))
returns bit
as
begin
declare @a int,@b int,@bit bit
select @a=patindex('%[0-9]%',@s),@b=0
while patindex('%[吖-座]%',@s)>0
select @b=@b+patindex('%[吖-座]%',@s),@s=stuff(@s,1,patindex('%[吖-座]%',@s),'')--改一下函数
return(case when @a>@b then 1 else 0 end)
end
go
declare @s nvarchar(100)
set @s='asdfa中国111中国'
select dbo.T_check(@s)
go
create function T_check(@s nvarchar(100))
returns bit
as
begin
declare @a int,@b int,@bit bit
select @a=patindex('%[0-9]%',@s),@b=0
while patindex('%[吖-座]%',@s)>0
select @b=patindex('%[吖-座]%',@s),@s=stuff(@s,1,patindex('%[吖-座]%',@s),'')
return(case when @a>@b then 1 else 0 end)
end
go
declare @s nvarchar(100)
set @s='asdfa中国'
select dbo.T_check(@s)
go
declare @s nvarchar(100)
set @s='111asdfa'
select dbo.T_check(@s)