sql-server - 在 CASE 语句中使用两个 = 符号?
问题描述
我正在尝试使用依赖于变量的 case 语句来确定我的 WHERE 子句的一部分,但它不喜欢我正在做的事情。这是我的查询(为简单起见进行了修改)
DECLARE @SalesType VARCHAR(10)
SET @SalesType = 'Bulk'
SELECT CASE
WHEN fwsf.Customer_Cardlock_Customer = 'True'
THEN 'CFN'
ELSE 'Bulk'
END AS 'Prod Type'
FROM TABLE t
WHERE CASE
WHEN @SalesType = 'Bulk' then t.customer_type = 'False'
WHEN @SalesType = 'CFN' then t.customer_type = 'True'
End
换句话说,我想在 WHERE 子句中声明,当 @SalesType 是给定值时,选择具有另一个值的行。
编辑:为了其他人,我意识到我有另一种情况,我可能需要选择“全部”选项。下面的每个肖恩,他用我验证的以下内容更正了我最初提出的解决方案:
AND t.customer_type =
CASE @SalesType
WHEN 'Bulk' then 'False'
WHEN 'CFN' then 'True'
WHEN 'All' then t.customer_type
END
END
解决方案
您可以WHERE
更简单地编写子句:
where
(@SalesType = 'Bulk' and t.customer_type = 'False')
OR
(@SalesType = 'CFN' and t.customer_type = 'True')
OR
@SalesType = 'All'
推荐阅读
- leaflet - 传单多边形显示在桌面上,但不在 android 上
- ubuntu - Skype 不从终端启动(通过 snap 安装)
- flutter - 如何在颤动中反转 TextFormField 的颜色?
- java - 如何使用密钥从 Firebase 实时数据库中删除?
- python - 选择随机列表?
- movilizer - 如果未找到记录,如何在 Movilizer 数据网格中显示消息
- r - 更新“tibble”版本时“pivot_longer()”参数出错
- python - 如何更好地解决 url 的问题 django
- java - SQLPLUS查询输出到* .csv格式使用java
- javascript - React Native - 使用状态显示/隐藏错误消息