sql - 不同的 WHERE 子句取决于子查询结果
问题描述
我想SELECT WHERE column
IS NULL
或=value
取决于子查询的结果。
这是一个演示问题的示例错误解决方案:
SELECT *
FROM table
WHERE column=(
SELECT (CASE WHEN COUNT(*) = COUNT(COLUMN) THEN MIN(column) END)
FROM table
)
当子查询返回时NULL
,另一个查询将不会返回任何内容,因为column=NULL
它永远不会为真。我该如何解决?
(子查询来源:https ://stackoverflow.com/a/51341498/7810882 )
解决方案
从你的问题。只需添加OR column IS NULL
inwhere
子句。
您将获得子查询条件或column IS NULL
数据。
SELECT *
FROM table
WHERE column= (
SELECT (CASE WHEN COUNT(*) = COUNT(COLUMN) THEN MIN(column) END)
FROM table
) OR column IS NULL
推荐阅读
- html - 如何使用 CSS 将单词换到下一行?
- c# - 在特定单词之后以字符串格式提取部分 URL
- javascript - HTML / CSS - 如何使覆盖视频文本完全响应?
- swift - 从硬编码转换为从 plist 读取
- php - 我需要在 MacOSX 上使用 php 连接一个 php MyAdmin MySQL 数据库,但它无法连接
- excel - Excel 中的用户表单错误更新小数记录时
- ssh - 在远程 ssh 命令上运行带有参数的 .exe
- mysql - 为什么我不能从 aws lambda 访问数据库,但可以从具有相同登录数据的本地计算机访问?
- vba - 将附件保存到新的 Windows 文件夹?
- c# - 我的数据库集
从单元测试 (MSTest) 代码尝试时不会更新