比较具有和不具有NULL值的多个列

时间:2012-01-31 17:24:01

标签: mysql

5,不确定我做错了什么,请帮忙。由于在多列比较的查询中似乎找到最小值, NULL继续显示为结果而不是最小值

SELECT
  IF(col1 IS NULL OR col2 IS NULL OR col3 IS NULL OR col4 IS NULL OR col5 IS NULL, 
      COALESCE(col1,col2,col3,col4,col5), 
      LEAST(col1,col2,col3,col4,col5)
  ) As Resultant 
from db.tablename 
Group by Id;

或者尝试CASE选择没有太大成功。 感谢

2 个答案:

答案 0 :(得分:1)

如果将null视为0

select least(ifnull(col1,0),ifnull(col2,0),ifnull(col3,0),ifnull(col4,0),ifnull(col5,0))
as Resultant
from db.tablename
Group by Id;

如果将null视为max

select least(ifnull(col1,~0>>1),ifnull(col2,~0>>1),ifnull(col3,~0>>1),ifnull(col4,~0>>1),ifnull(col5,~0>>1))
as Resultant
from db.tablename
Group by Id;

答案 1 :(得分:0)

对于具有案例的人,只有两个值可供比较,您可以这样做:

html, body {
  height: 100%;
}

#wrapper {
  height: 100%;
}