获取列的最大值,同时获取特定记录的同一列

时间:2013-01-05 12:10:10

标签: mysql sql select if-statement

我有一张这样的表:

_id integer
column_1 text
column_2 integer

如果column_2并且如果不存在则获取_id = 1

的最大值,我想获得column_2的价值
SELECT max(column_2), column_2
where _id = 2

这将无法确定,有没有办法在同一个查询中获取这两个值?

4 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT 
     IFNULL(column_2,l.MValue) 
FROM mytable 
LEFT JOIN (
          SELECT 
            id,   
            MAX(column_2) as MValue 
          FROM mytable 
          ) as l ON l.id = mytable.id 
WHERE mytable.id = 1

SQL Fiddle Demo

答案 1 :(得分:1)

试试这个:

SELECT IFNULL(column_2, (SELECT MAX(column_2) FROM test)) column2  
FROM test WHERE id = 1;

检查SQL FIDDLE DEMO

答案 2 :(得分:0)

您可以使用(Exist)SQL语句

答案 3 :(得分:0)

如果我的问题正确,可能会对您有所帮助。

select 
    IF(column_2 IS NULL, X.maxv, column_2) 
from test,(select max(column_2) as maxv from test)as X