gpt4 book ai didi

SQL:从具有空值的多列中选择最小值

转载 作者:行者123 更新时间:2023-12-03 23:09:21 25 4
gpt4 key购买 nike

我有一张这样的 table

ID   Col1   Col2   Col3
-- ---- ---- ----
1 7 NULL 12
2 2 46 NULL
3 NULL NULL NULL
4 245 1 792

我想要一个产生以下结果的查询
 ID   Col1   Col2   Col3  MIN
-- ---- ---- ---- ---
1 7 NULL 12 7
2 2 46 NULL 2
3 NULL NULL NULL NULL
4 245 1 792 1

我的意思是,我想要一列包含 Col1、Col2 和 Col 3 中的最小值,每行忽略 NULL 值。在上一个问题 ( What's the best way to select the minimum value from multiple columns? ) 中,有一个非 NULL 值的答案。对于一个巨大的表,我需要一个尽可能高效的查询。
Select Id,
Case When Col1 < Col2 And Col1 < Col3 Then Col1
When Col2 < Col1 And Col2 < Col3 Then Col2
Else Col3
End As MIN
From YourTableNameHere

最佳答案

假设您可以定义一些“最大”值(我将在这里使用 9999),您的实际值永远不会超过:

Select Id,
Case When Col1 < COALESCE(Col2, 9999)
And Col1 < COALESCE(Col3, 9999) Then Col1
When Col2 < COALESCE(Col1, 9999)
And Col2 < COALESCE(Col3, 9999) Then Col2
Else Col3
End As MIN
From YourTableNameHere;

关于SQL:从具有空值的多列中选择最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29549036/

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