初学SQL所以比较陌生,也看了站内一些关于此问题的讲解,但还是不太明白,所以想在此再次请教一下各位大侠!
问题: 
有N个查询条件,为空的条件不加入SELECT语句,反之则加入。这样的代码应该怎样写?

解决方案 »

  1.   

    有N个查询条件,为空的条件不加入SELECT语句,反之则加入不明白!为空的不sql,查询什么东西?贴测试数据和结果
      

  2.   

    静态
    declare @id int, @name varchar(100)
    select * from tb where id=isnull(@id,id) and name=isnull(@name,name)动态declare @id int,@name varchar(100)
    set @s='select * from tb where 1=1 " + isnull(' and id=' + rtrim(@id)) + isnull(' and name=''' + rtrim(name) + '''')
      

  3.   

    静态写法,注意字段值本身为 null 的情况
      

  4.   

    在条件的位置以这种方式写
    where  字段1 = isnull(条件1,字段1)
    isnull函数的返回值是如果第一个参数是null那么就返回第二个参数表示的值.如果不为null就返回第一个参数的值.当条件1不等于null的时候,上面的语句就编程 where 字段1 = 条件1.如果等于null就是where 字段1 = 字段1 成了一个恒等式,也就相当于条件不起作用.