gpt4 book ai didi

MySQL 查询 : find the minimum non-null value across all the columns in that record

转载 作者:行者123 更新时间:2023-11-29 05:46:14 25 4
gpt4 key购买 nike

我有一个具有以下结构的表

id(int) | col1(int) | col2(int) | col3(int)------------------------------------------1       | NULL      | 10        | 202       | 5         | NULL      | 303       | 8         | NULL      | NULL

给定一个“id”值,我需要找到该记录中所有列的最小非空值
例如,对于 id=1,该值为 10。对于 id=2,该值为 5,依此类推。

如何在 MySQL 中执行此操作?

最佳答案

如果 LEAST() 是 NULL 安全的,那将是最好的,但由于它不是,这是我能想到的最干净的解决方案:

SELECT MIN(cols)
FROM (SELECT col1
FROM table
WHERE id = 1
UNION
SELECT col2
FROM table
WHERE id = 1
UNION col3
FROM table
WHERE id = 1) AS dt

如果你需要一行,这是我能想到的最好的:

SELECT LEAST(COALESCE(col1, col2, col3)
, COALESCE(col2, col3, col1)
, COALESCE(col3, col1, col2))
FROM table
WHERE id = 1

关于MySQL 查询 : find the minimum non-null value across all the columns in that record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1574803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com