sql="select a from b where c=d";
if(cond<1)
   sql+=" and e=f";
else if(cond==1)
   sql+=" and g=h";
else
   sql+=" and i=j";
改为一句SQL
 

解决方案 »

  1.   

    一句SQL好像搞不定吧,用存储过程吧
      

  2.   

     运行完之后 SQL 连接起来的语句就是你想要的一句SQL语句,哈哈
      

  3.   

    cond也是数据库字段吗
    是就会改
      

  4.   

    sql = "select a from b where c=d and " + (cond < 1 ? "e=f" : cond == 1 ? "g=h" : "i=j"); 
      

  5.   

    cond是字段吗?如果是的话,用when case 是可以的,如果不是,厄,期待牛人出现了/
      

  6.   

    请问cond是b表中的某一栏位还是程式中的某一条件?
      

  7.   

    可能是偶没说明白。原来的是程序里的,可如果我想改种写的方式,一句sql直接解决也就是将IF放入SQL中,怎么实现?
      

  8.   

    如果cond是字段可以这样
    select a from b where c=d and ((cond<1 and e=f) or (cond=1 and g=h) or(cond>1 and i=j))
      

  9.   

    select a 
    from b 
    where cond<'1' and (c=d and e=f)
    or cond='1' and (c=d and g=h)
    or cond>'1' and (c=d and i=j)
      

  10.   

    cond 是一个变量 然后根据这个变量来拼sql  遇到的太多了
      

  11.   

    declare @cond int; 
    select @cond = 4;
    if(@cond <=3)
    select a from b where c=d and e=f
    else if((@cond >3))
    select a from b where c=d and g=h