【发布时间】:2015-06-15 10:34:51
【问题描述】:
我有一张这样的桌子
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
【问题讨论】:
-
您使用的是什么数据库?您应该适当地标记您的问题。