首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-01-10 
一个Case When条件语句求解表A,表BSQL codeSelect * From 表A Where .....SQL codeSelect ItemName From

一个Case When条件语句求解
表A,表B

SQL code
Select * From 表A Where .....


SQL code
Select ItemName From 表B Where plan_id=@plan_id 
作为条件,它的结果有二种可能,一种是ItemName = 'xx' ,那么就直接执行
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' 

热点排行