2013-07-06 54 views
1

我需要一个小小的SQL查询帮助。简单的SQL查询选择最大值

我有两个表格:tbltranstbltrans_temp。我想选择tbltrans_temp max(tbltrans_temp.transid)的最大值。

如果tbltrans_temp为空且返回空值,则应取最大值tbltrans.transid

如果两个表是空的,它应该只是返回0

我尝试以下,但没有得到预期的结果。

select ifnull(ifnull(max(t1.transid), max(t2.transid)), 0) 
from tbltrans_temp t1 
left join tbltrans as t2 
+2

这是SQLServer的或SQLite的? –

+1

@MarkBannister - 我会猜SQLite,因为SQL Server不支持'IFNULL'。但是,两者都应该支持'COALESCE'。 – sgeddes

回答

1

这个工程使用COALESCE

select coalesce(maxtemptrans, maxtrans, 0) 
from (select max(transid) maxtemptrans from tbltrans_temp) t, 
    (select max(transid) maxtrans from tbltrans) t2 
0

尝试:

select coalesce((select max(transid) from tbltrans_temp), 
       (select max(transid) from tbltrans), 
       0)