一个Case When条件语句求解
表A,表B
- SQL code
Select * From 表A Where .....
- SQL code
Select ItemName From 表B Where plan_id=@plan_id
- SQL code
Select * From 表A
另一种可能就是它可能数字或是记录有多条,那么就执行
- SQL code
Select * From 表A Where ID IN (Select ItemName From 表B Where plan_id=@plan_id )
不知有没有描述清楚
[解决办法]
- SQL code
Select ItemName From 表B Where plan_id=@plan_idif (@@rowcount = 1) and (ItemName = 'xx') Select * From 表Aelse Select * From 表A Where ID IN (Select ItemName From 表B Where plan_id=@plan_id )
[解决办法]
- SQL code
drop table tbcreate table tb (id int,AN varchar(8000),CN varchar(8000))insert tb select 1,'a','121'insert tb select 2,'','123'insert tb select 3,'s','123'create table tb (id int,AN varchar(8000),CN varchar(8000))insert tb select 1,'a','121'insert tb select 2,'','123'if(exists(select 1 from tb where an != '' and cn='123') ) exec('select * from tb where an !='''' and cn =''123''')elseexec('select * from tb where an ='''' and cn =''123''')
[解决办法]
使用
if else
- SQL code
declare @ID intset @ID = 1if @ID = 1beginselect COunt(*) from sysobjectsset @ID = 2endelseselect count(*) from sysfiles
[解决办法]
if @@rowcount = 1 and Case_ItemID = 'All'
????????????????////////
郁闷,怎么能这样用的
----------------
- SQL code
declare @DisplayChar intdeclare @Plan_ID intdeclare @Case_ItemID varchar(20)set @Plan_ID ='1006'Select @Case_ItemID = Ltrim(Case_ItemID) From Report_Planparameter2 Where Plan_Id =@Plan_ID and Case_name = 'account'if @@rowcount = 1 and @Case_ItemID = 'All' select @DisplayChar = ''else select @DisplayChar = '1'