现在有一个表A,结构如下
番号,名称,工种
想要做以下查询,用番号和名称做检索条件查工种,但由于番号和名称是传进来的参数,所以先要判断他们是否为空,然后再设定检索条件:
为空:不作为检索条件
不为空:作为检索条件
请问这个sql句将要怎么写?

解决方案 »

  1.   

    这个最好在应用那层去判断了。 如果不行,就procedure了
      

  2.   

    的确,这还要穿参数,在应用层先把sql构造好比较合理。
      

  3.   


    if @番号 is null or @名称 is null
        begin
           select @工种 = 工种 from A where 番号 = @番号 and 名称 =@名称 
        end 
    else
        begin
           set @return = '番号或名称,含有空值。请检查!' 
        end return @return
    仅作参考!
      

  4.   

    楼上是sql server的语法吧,可不是oracle的
      

  5.   

    不好意思,刚开始搞Oracle。顺着就出来SQL Server的东东了。参考参考哈!
      

  6.   

    select * from tab where id like nvl(参数1,'%') and name like nvl(参数2,'%') and ....
      

  7.   

    MS SQLselect @工种 = 工种 from A where 番号 = isnull(@番號,番號) and 名称 =isnull(@名称,名称)