mysql - 如何输入null是SQL

标签 mysql sql

   Table1            Table2   
id      name    !   id  number
1       cat     !   1   10
2       dog     !   2   null
3       bat     !   3   null
4       rat     !   4   11
5       kong    !   5   null
Select *
FROM Table1 t0 left join Table2 T1 on T1.id = T2.id
id      name        number
1       cat         10
2       dog         null
3       bat         null
4       rat         11
5       kong        null
I want
id      name        number
1       cat         10
2       dog         10
3       bat         10
4       rat         11
5       kong        11

我需要更新sql表中的数字

我的问题:我找不到适合这里的逻辑,使得 where 条件在所有这三种情况下都适用,因此它不应该破坏现有功能。

最佳答案

您可以使用 COALESCE 和子查询:

Select T1.ID, T1.Name, 
       COALESCE(T2.Number, (SELECT Number
                            FROM Table2 
                            WHERE Table2.Number IS NOT NULL
                             AND  Table2.ID < T1.ID
                            ORDER BY Table2.ID DESC
                            LIMIT 1)) AS Number
FROM Table1 T1 
left join Table2 T2 
    on T1.id = T2.id

Demo

关于mysql - 如何输入null是SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914826/

相关文章:

php - 发布与其他选择框一起选中的表行

python - 删除最后一列值,移动值并在第一列中添加新值

Java - 将 .csv 导入数据库 - 排除第一行

java - Hibernate onetomany 中的外键未更新

MySQL:获取所有过程输出参数为空

javascript - 检查行是否已被解析并插入到 mysql 数据库中

java - MySQL、Java 和时区

mysql - ImportError:没有使用Python3的名为mysql.connector的模块?

sql - 尝试在 SQL 2008 中生成插入数据脚本时绕过循环外键错误

php - 有没有办法让Mysql生成唯一的ID,由字母和数字组成? (或PHP)