选择最大值的简单SQL查询
我需要一个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
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)
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
。但是,两者都应该支持合并。