【问题标题】:Sql query Where clause filter on code number how to get all record without filter?Sql查询Where子句过滤代码号如何在没有过滤器的情况下获取所有记录?
【发布时间】:2018-08-20 04:00:37
【问题描述】:

我想明智地获取数据状态,如我的查询中所示,

select  Zipcode,
(CASE pobox
       WHEN 1 THEN 'Available'
       WHEN 2 THEN 'Reserved' 
       WHEN 3 THEN 'Assigned'
       WHEN 4 THEN 'Closed'
END) as ' Status'
from custom_pobox  
where pobox=@Status

假设@status = 0 或 1 或 2 任何值

但是我们在数据库中有从 0 到 4 的值,如果人们从下拉列表中选择全部,我想显示所有数据

那么我将如何更改此查询?

希望您的建议

【问题讨论】:

  • 请解释一下结果是什么
  • 您的意思是如何按状态列表进行过滤,还是如何按特定状态进行过滤,或者如果没有指定状态则全部获取??跨度>
  • 是的,如果状态 1 提供可用,如果 2 返回保留,但对于所有数据库中都没有选项,它是下拉“ALL”中的硬代码,所以我将如何返回所有状态的所有记录
  • WHERE pobox=@Status OR @Status is NULL
  • 但 status 在数据库中不为空,它的值为 1,2,3,4

标签: sql sql-server sql-server-2005


【解决方案1】:
SELECT Zipcode, (CASE pobox
   WHEN 1 THEN 'Available'
   WHEN 2 THEN 'Reserved' 
   WHEN 3 THEN 'Assigned'
   WHEN 4 THEN 'Closed'
END) as ' Status'
FROM custom_pobox  
WHERE  Status IN( CASE WHEN @ALL <> 1 THEN (SELCECT CASE pobox
       WHEN 1 THEN 'Available'
       WHEN 2 THEN 'Reserved' 
       WHEN 3 THEN 'Assigned'
       WHEN 4 THEN 'Closed'
END) FROM CUSTOM_POBOX) ELSE @STATUS END)

【讨论】:

  • 您好,欢迎来到 StackOverflow。发布答案时,请在代码的作用以及解决问题的原因旁边添加说明。
【解决方案2】:
Pass 'ALL' if person select all from dropdown and write query like below:    
       select  Zipcode, (CASE pobox
       WHEN 1 THEN 'Available'
       WHEN 2 THEN 'Reserved' 
       WHEN 3 THEN 'Assigned'
       WHEN 4 THEN 'Closed'
END) as ' Status'
from custom_pobox  
where CASE WHEN @Status <> 'ALL' THEN pobox=@Status ELSE 1=1 END

【讨论】:

    【解决方案3】:

    为了得到你的 where 子句应该有的所有行

    where (@status <> 0  AND pobox = @Status) OR (@status = 0 AND 1=1)
    

    但是,第二个 OR 有一些冗余过滤器,应该只有 @status= 0

    where (@status <> 0  AND pobox = @Status) OR (@status = 0)
    

    【讨论】:

    • 第一个 where 子句继续运行花了很长时间,即使它没有返回返回记录
    • 两个 where 子句发生同样的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2022-08-12
    • 2016-07-02
    相关资源
    最近更新 更多