请教下大家,存储过程中怎么做判断处理?举个例子,比如传入的参数叫id,判断id参数是否为空,非空的话找到指定一条记录,空的话返回整个表……换句话说,怎么根据传入的参数情况,判断WHERE条件?

解决方案 »

  1.   

    SELECT *
    FROM dbo.TB
    WHERE (@id IS NULL OR id = @id)
      

  2.   


    if @id IS NULL
        select * from tb
    else
        select * from tb where id=@id
      

  3.   


    这个方法我知道,但是如果是多个条件呢?
    SELECT *
    FROM dbo.TB
    WHERE 1 = 1
    AND (@id IS NULL OR id = @id)
    AND (@name IS NULL OR name = @name)
    AND (@age IS NULL OR age = @age)
      

  4.   


    这个方法我知道,但是如果是多个条件呢?
    SELECT *
    FROM dbo.TB
    WHERE 1 = 1
    AND (@id IS NULL OR id = @id)
    AND (@name IS NULL OR name = @name)
    AND (@age IS NULL OR age = @age)非常感谢啊。。