选择最大值的简单SQL查询

选择最大值的简单SQL查询,sql,sql-server,sqlite,join,Sql,Sql Server,Sqlite,Join,我需要一个SQL查询的小帮助 我有两个表:tbltrans和tbltrans\u temp。我想选择tbltrans\u tempmax的最大值(tbltrans\u temp.transid) 如果tbltrans\u temp为空且返回null,则应取tbltrans.transid的最大值 如果两个表都是空的,它应该只返回0 我尝试了以下方法,但没有得到预期的结果 select ifnull(ifnull(max(t1.transid), max(t2.transid)), 0) fr

我需要一个SQL查询的小帮助

我有两个表:
tbltrans
tbltrans\u temp
。我想选择tbltrans\u temp
max的最大值(tbltrans\u temp.transid)

如果
tbltrans\u temp
为空且返回null,则应取
tbltrans.transid
的最大值

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

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

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

这可以使用
合并

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

这项工作使用
合并

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

select coalesce((select max(transid) from tbltrans_temp),
                (select max(transid) from tbltrans),
                0)
尝试:

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

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

您已经很接近了--只需删除连接即可:

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

这是SQLServer还是SQLite?@MarkBannister——我猜SQLite是因为SQLServer不支持
IFNULL
。但是,两者都应该支持
COALESCE
。这是SQLServer还是SQLite?@MarkBannister——我猜SQLite是因为SQLServer不支持
IFNULL
。但是,两者都应该支持
合并