sql - 在 WHERE 子句中使用 CASE 语句
问题描述
我一直在寻找其他问题,但找不到像我的具体情况一样的问题。
我需要一些方法在我的WHERE
子句中执行条件语句,如下所示:
如果字段 dqpoln 不为 0,我需要添加该比较“AND dqpoln=mppoln”。
" SELECT ... "
" FROM ... "
" WHERE ((dqtype=@userType AND dqssn=@userSSN) OR (dqtype=a.maagtt AND dqssn=a.maassn)) " &
" CASE dqpoln WHEN 0 THEN '' ELSE AND dqpoln=mppoln END "
我尝试CASE
了几种不同的方式使用语句,也尝试了一些 IF 语句。似乎没有什么对我有用。
解决方案
您只能使用布尔逻辑进行尝试:
(dqpoln = 0 OR dqpoln = mppoln)
或者,如果您坚持使用CASE
, 类似:
CASE dqpoln
WHEN 0 THEN
mppoln
ELSE
dqpoln
END = mppoln
推荐阅读
- c# - Entity Framework Core:如何通过仅选择最新创建的记录来对“IQueryable”执行联接?
- r - 删除刻面底部的空间
- javascript - 如何在一个div标签中迭代输入标签并根据inputdata显示多个输入标签
- android - 调用两个 DataSnapshot 函数
- python - 如何在 python3 中读取和列出 tgz 文件?
- three.js - TheeJs 加载和压缩 gltf 错误'Draco Decoder Module is not defined at eval'
- java - 无法使用包括 datastax cassandra 驱动程序和图形感知框架的自制程序启动 neo4j
- php - Ajax 第二个调用响应包含第一个 ajax 响应
- python - 在 Windows 上将 python 源编译为可执行文件失败
- java - 使用 MyBatis 和 Oracle 存储过程进行批量更新