mysql - 当一列为 NULL 时带有条件的 WHERE 语句

标签 mysql sql

假设我有

ID       |   Column 1 | Column 2
  2      |      NULL  |     "a"
  3      |      "b"   |    NULL
  4      |       "c"  |     "c"

我想写的是这样的:

 SELECT ID FROM table, AnotherTable 
  WHERE (Table.Column1 = AnotherTable.Column IF Table.Column1 IS NOT NULL 
     OR Table.Column2 = AnotherTable.Column IF Table.Column2 IS NOT NULL)

编辑:我还添加了案例 IF Table.Column1 IS NOT NULL AND Table.Column2 IS NOT NULL THEN CHOOSE Table.Column2 = AnotherTable.Column

最佳答案

您可以使用 COALESCE()功能:

SELECT ID
FROM   table JOIN AnotherTable
               ON AnotherTable.Column = COALESCE(table.Column1, table.Column2)

关于mysql - 当一列为 NULL 时带有条件的 WHERE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13993880/

相关文章:

php - 事件流的智能 MySQL GROUP BY

mysql 选择/插入到同一个表中

C# 执行 SQL 查询并返回或显示响应

php - 在 MySQL 的 X 或 Y 列中返回不同的值

mysql - 多个 Case 语句不适用于 group by

sql - Entity Framework 数据库查询非常慢

sql - 如何在 DolphinDB 中加载文本文件的指定列?

mysql - 如何减去从表中选择的两个值

php - 自动将 Excel 导入 phpmyadmin

mysql - CHAR 字段只能有某些值 - CONSTRAINT