sql - SQL如何设置这个where子句来检查两个不同的字段?
问题描述
我在具有参数 OrderType 的 SSRS 中设置报告
此参数选中“允许多个值”框
这是我为可用值设置的内容。
Label Value
Blanketed B
Shipped S
Open O
用户可以选择全部三个或只选择两个或一个
我想向用户展示他选择的订单类型。问题是,这些订单类型的值被分成两个字段。
是否被覆盖在字段 Order_Type 下,是否发货或打开在 Order_Status 下。
我将如何设置这个 where 子句?
这就是我在伪代码中寻找的东西
Select * from Orders O
Where (CASE WHEN @OrderType Contains 'B' THEN O.Order_Type_Code = 'B')
or (CASE WHEN @OrderType Contains 'S' THEN O.Order_Status = 45)
or (CASE WHEN @OrderType Contains 'N' THEN O.Order_Status = 10 or 20)
解决方案
像这样的东西可能会起作用(虽然我没有测试过):
SELECT *
FROM Orders o
WHERE (@OrderType LIKE '%B%' AND o.Order_Type_Code = 'B')
OR (@OrderType LIKE '%S%' AND o.Order_Status = 45)
OR (@OrderType LIKE '%N%' AND o.Order_Status IN (10, 20));
推荐阅读
- php - PHP内置Web服务器+动态扩展
- python - 修改数据集的行和列
- raku - 展平和逐项列表
- javascript - Vue.js 获取存储在代理对象中的文件作为文件类型
- bluetooth - 应用级别的蓝牙 RSA 加密
- ios - 从原生代码库调用 Flutter 方法或函数
- python - 减去每个索引行值(即 '
我有一个 df,它有多个时间戳列(列标题本身是日期/时间)并且有一个时间行索引(每行每 2 分钟)。例如:
timestamp 2021-08-20 08:00:00 2021-08-27 08:00:00 2021-10-
- python - python:重复扩展数据框
- arrays - 从子数组中提取值并使用 jq 与上值组合到 csv
- javascript - 值被 setState 改变了,但是 React 表单提交的是 ORIGINAL 值