SQL超难度问题(20)

  • 主题发起人 主题发起人 ycluo
  • 开始时间 开始时间
Y

ycluo

Unregistered / Unconfirmed
GUEST, unregistred user!
用一句SQL语句实现,在表 A中,有个字段FacNo varchar(2), 其字段值可能是:'01','02','03',当我们传入一变量@Facno varchar(2),其值可能为空,也可能为'01' or '02' or '03'从表中查出满足select * from where Facno=@Facno的记录,当@Facno =''时,查出所有记录。注意不能用like关健字。
 
超简单select *from awhere FacNo=@Facno or @Facno=''结贴给分吧!
 
不行,当@Facno=''时,一条记录也查询不到。应该是当@Facno=''时,查出所有记录。
 
那是你参数传递问题,如果@Facno是'',我替换一下上面sql,你直接执行下面语句看看有没有数据。select *from awhere FacNo='' or ''=''
 
不行,当@Facno='01'时,查询出所有记录,这里只应该查出等于'01'记录
 
charindex(','+rtrim( (case when @Facno<>'' then FacNo else '' end))+',', ','+@Facno+',')>0这条语句可是我以前查了几天才查出来的,lz记得要给多点分罗。
 
不错,该答案很有创意!
 
不错,结贴
 
多人接受答案了。
 
后退
顶部