select userid from user where id = ?当这个查询结果集<0的时候 怎么给 这个语句赋值一个默认值 case 做不了 求助能做得到不 不用存储过程

解决方案 »

  1.   

    select 
    case when exists( select userid from user where id = @xxx) 
    then (select top 1  userid from user where id = @xxx )
    else '默认值'
    end
      

  2.   

    结果 我查询的 userid 一定要有一个值 
      

  3.   

    在程序中处理不就可以了,sql语句得不到,就给个默认值。
      

  4.   


    select 
    case
    when userid<0 then
    默认值
    else
    userid
    end
    from user where id = ?
      

  5.   


    select userid from user where id =@id
    union 
    select '默认值' as userid  from user where not exists(select 1 from user where id =@id)
      

  6.   

    select 
    case when exists( select userid from user where id = @xxx) 
    then (select top 1  userid from user where id = @xxx )
    else '默认值'
    end这个可以 呵呵 但是  在这个语句中 只能是一个参数 @xxx 那又如何呢?
      

  7.   

    if exists (select userid from user where id = ?)
    select userid from user where id = ?
    else
        select 你要的默认值
      

  8.   

    变量就在你程序的代码里面赋值好了 先在程序里面拼接好 然后执行SQL就可以了 不用过程的话
      

  9.   


    select userid=case when exists (select 1 from user where id=@id) 
    then (select max(userid) from user where id=@id)
    else 你需要的默认值 end这里特别注意下,如果能找到的USERID不是一个,请使用MIN或者MAX函数。