declare @Fno varchar(15)
set @Fno='003'
select * from Utable
where left(流水号,3)<=@Fno and @Fno <=Right(流水号,3)
set @Fno='003'
select * from Utable
where left(流水号,3)<=@Fno and @Fno <=Right(流水号,3)
解决方案 »
- 大侠们,请看这段sql代码错在哪里?
- 【求助】一条看似简单的更新语句出问题了,请问该如何解决?
- 请教安装问题。
- sqlserver2008 的用户能对应到不同的视图么?急等回复~~~~~~~~
- 高难度的难题求助
- 初学者问个问题
- MSSQL2005中Table-valued Functions和Scalar-valued Functions有什么区别?
- 求一段SQL语句,内详!
- 为什么我在数据输入时,经常会出现提示(输入的值与数据类型不一致,或者此值与列的长度不一致)非常感谢!!
- 如何实现access当中的first()功能 ?
- 第一次写存储过程,有很多不懂,出现这个问题不知怎样解决,请高手们指点
- Visio设计数据库见鬼了
我支持winding的方法,不过这个方法有个弊端,就是没有办法将三个条件的查询结果和在一起。你试着做个存储过程。将要查询的流水号组合在一起,做为一个字符串传入。然后使用UNION ALL进行处理就应该可以了。呵呵~~~个人看法,呵呵~~~~
where left(流水号,3)=‘002’and Substring(流水号,5,3)='003'
and substring(流水号,9,3)='088'因为你说流水号最大是010.
create function fchk(@str varchar(2000),@bh varchar(50))
returns bit
begin
declare @tb table(str1 varchar(2000),str2 varchar(2000))
declare @i int,@str1 varchar(2000),@str2 varchar(2000)
declare @re bitselect @i=1,@str=@str+','
while @str<>''
begin
if substring(@str,@i,1)='-'
select @str1=left(@str,@i-1)
,@str=substring(@str,@i+1,2000)
,@i=1
else
if substring(@str,@i,1)=','
begin
select @str2=left(@str,@i-1)
,@str=substring(@str,@i+1,2000)
,@i=1
if @str1 is null set @str1=@str2
insert into @tb values(@str1,@str2)
set @str1=null
end
set @i=@i+1
end
if exists(select 1 from @tb where @bh between str1 and str2)
set @re=1
else
set @re=0
return(@re)
end
go
感谢各位高手!