1

我有一张这样的桌子:

_id integer
column_1 text
column_2 integer

我想获取是否存在的值,column_2如果_id = 1不存在则获取最大值column_2

SELECT max(column_2), column_2
where _id = 2

这肯定会失败,有没有办法在同一个查询中获取这两个值?

4

4 回答 4

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 小提琴演示

于 2013-01-05T12:14:52.700 回答
1

尝试这个:

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

检查SQL FIDDLE 演示

于 2013-01-05T13:11:21.573 回答
0

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

select 
    IF(column_2 IS NULL, X.maxv, column_2) 
from test,(select max(column_2) as maxv from test)as X
于 2013-01-05T13:13:43.187 回答
0

您可以使用 (Exist) SQL 语句

于 2013-01-05T12:16:08.033 回答