当前位置: 代码迷 >> Sql Server >> 一个Case When条件语句求解解决思路
  详细解决方案

一个Case When条件语句求解解决思路

热度:52   发布时间:2016-04-27 19:19:50.0
一个Case When条件语句求解
表A,表B
SQL code
Select * From 表A Where .....


SQL code
Select ItemName From 表B Where [email protected]_id 
作为条件,它的结果有二种可能,一种是ItemName = 'xx' ,那么就直接执行
SQL code
Select * From 表A 

另一种可能就是它可能数字或是记录有多条,那么就执行
SQL code
Select * From 表A Where ID IN (Select ItemName From 表B Where [email protected]_id )

不知有没有描述清楚

------解决方案--------------------
SQL code
Select ItemName From 表B Where [email protected]_idif (@@rowcount = 1) and (ItemName   =   'xx')    Select * From 表Aelse    Select * From 表A Where ID IN (Select ItemName From 表B Where [email protected]_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 [email protected]_ID  and Case_name = 'account'if @@rowcount = 1 and @Case_ItemID = 'All'   select @DisplayChar = ''else   select @DisplayChar = '1'
  相关解决方案