1

我需要一点关于 SQL 查询的帮助。

我有两张桌子:tbltranstbltrans_temp。我想选择 tbltrans_temp 的最大值max(tbltrans_temp.transid)

如果tbltrans_temp为空并且返回 null,那么它应该取 的最大值tbltrans.transid

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

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

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

3 回答 3

1

这适用于COALESCE

select coalesce(maxtemptrans, maxtrans, 0)
from (select max(transid) maxtemptrans from tbltrans_temp) t, 
    (select max(transid) maxtrans from tbltrans ) t2 
于 2013-07-06T20:32:45.123 回答
0

尝试:

select coalesce((select max(transid) from tbltrans_temp),
                (select max(transid) from tbltrans),
                0)
于 2013-07-06T20:34:04.113 回答
0

你很接近 - 只需删除连接:

select ifnull(ifnull(max(t1.transid), max(t2.transid)),0)  
from tbltrans_temp t1, tbltrans t2

http://sqlfiddle.com/#!5/2897f/1

于 2013-07-06T20:44:45.867 回答