34,587
社区成员
发帖
与我相关
我的任务
分享
--设@b>@a,否则调换一下@a和@b的位置
insert tb(firstnumber,lastnumber)
select @a,@b
where not exists
(select 1 from tb
where (@a<=firstnumber and @b>=firstnumber)
or (@a>=firstnumber and @a<=firstnumber)
declare @min bigint
declare @max bigint
declare @min1 bigint
declare @max1 bigint
select @max1=max(firstnumber),id from tb group by id
select @min1=max(firstnumber),id from tb group by id
select @max2=max(lastnumber),id from tb group by id
select @max1=max(lastnumber),id from tb group by id
if @min1<=@min2 and @max1<=@max2
set @min=@min1
set @max=@max2
.....................
------------------------------------
-- Author: happyflystone
-- Date:2009-07-20
-- Parameter: @CardString 被查询的串,形如:13300000000-13300001234,13300002230,13300002300
-- @CardNo 要查询的串
-- Return : int 0 -- 不存在于搜索串的范围内
-- 1 -- 存在于
-- 转载请注明出处。更多请访问: http://blog.csdn.net/happyflystone
------------------------------------
Create function IsInCardString(@CardString varchar(8000),@CardNo varchar(11))
returns int
as
begin
declare @temp table(a varchar(200))
declare @i int
set @CardString = rtrim(ltrim(@CardString))+','
set @i = charindex(',', @CardString)
while @i >= 1
begin
insert @temp values(left(@CardString, @i - 1))
set @CardString = substring(@CardString, @i + 1, len(@CardString) - @i)
set @i = charindex(',', @CardString)
end
if exists(select 1
from (
select case when charindex('-',a) > 0 then left(a,11) else a end as s,
case when charindex('-',a) > 0 then right(a,11) else a end as e
from @temp
) a
where @CardNo between s and e)
set @i= 1
else
set @i= 0
return @i
end
go
declare @CardString varchar(1000)
set @CardString = '13300000000-13300001234,13300002230,13300002300,13300002302,13300004101-13300004204,13300004212,13300004310'
declare @CardNo varchar(1000)
set @CardNo = '13300000001' --存在
select dbo.IsInCardString(@CardString,@CardNo)
set @CardNo = '13300001235' --不存在
select dbo.IsInCardString(@CardString,@CardNo)
/*
-----------
1
(所影响的行数为 1 行)
-----------
0
(所影响的行数为 1 行)
*/
drop function IsInCardString
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/happyflystone/archive/2009/07/21/4365264.aspx
declare @b int
select @b=1 from tb where firstnumber>=10000001 and lastnumber<=19999999
if(@b=1)
begin
print '不能插入'
end
else
begin)
insert into 表名(列名) values (值)
end
--
select * from tb where firstnumber<10000001 and lastnumber>19999999
select * from tb where firstnumber>=10000001 and lastnumber<=19999999--这样?