表A,表BSelect * From 表A Where .....Select ItemName From 表B Where plan_id=@plan_id 
作为条件,它的结果有二种可能,一种是ItemName = 'xx' ,那么就直接执行
Select * From 表A 另一种可能就是它可能数字或是记录有多条,那么就执行Select * From 表A Where ID IN (Select ItemName From 表B Where plan_id=@plan_id )
不知有没有描述清楚

解决方案 »

  1.   


    Select ItemName From 表B Where plan_id=@plan_id
    if (@@rowcount = 1) and (ItemName   =   'xx')
        Select * From 表A
    else
        Select * From 表A Where ID IN (Select ItemName From 表B Where plan_id=@plan_id )不知道LZ是不是要这样的效果。ItemName的值必须是等于'xx'并且只能有一行,则执行直接查询表A,否则就是下面这条查询语句
      

  2.   

    drop table tb
    create 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''')
    else
    exec('select * from tb where an ='''' and cn =''123''')?
      

  3.   


    if ...
    else if
    判断
      

  4.   

    up,case能实现么?还是想知道能否用Case实现
      

  5.   

    case 不能实现,需要写代码做判断的case 可以实现行列转换
      

  6.   

    使用
    if elsedeclare @ID int
    set @ID = 1
    if @ID = 1
    begin
    select COunt(*) from  sysobjects
    set @ID = 2
    end
    else
    select count(*) from sysfiles
      

  7.   

    declare @DisplayChar int
    declare @Plan_ID int
    set @Plan_ID  ='1006'
    Select Ltrim(Case_ItemID) as 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'执行语句为什么提示:服务器: 消息 207,级别 16,状态 3,行 7
    列名 'Case_ItemName' 无效。
      

  8.   

    if @@rowcount = 1 and Case_ItemID = 'All'
    ????????????????////////
    郁闷,怎么能这样用的
    ----------------declare @DisplayChar int
    declare @Plan_ID int
    declare @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'
      

  9.   

    declare @DisplayChar int
    declare @Plan_ID int
    declare @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'