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, (SELECT MAX(column_2) FROM test)) column2  
FROM test WHERE id = 1;

SQL FIDDLE DEMOを確認する

于 2013-01-05T13:11:21.573 に答える
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 に答える
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 に答える