我需要从两个表中查询最大ID,我需要获取较大者的ID。我正在使用sqlserver。
查询:
SELECT MAX(a.ID)
FROM tableA a
SELECT MAX(b.ID)
FROM tableB b
如果tableA
的最大ID为20且tableB
的最大ID为30,则两个表查询的UNION
应仅返回30.
是否可以将两个查询合并为一个查询以返回最大ID?
答案 0 :(得分:6)
这基于你所说的,UNION
两个表并获得最大值。
SELECT max(ID)
FROM
(
select max(ID) ID from tableA
UNION
select max(ID) ID from tableB
) s
或
SELECT max(ID)
FROM
(
select ID from tableA
UNION
select ID from tableB
) s
答案 1 :(得分:3)
SELECT MAX(id)
FROM (SELECT ID FROM tableA
UNION
SELECT ID FROM tableB) AS D
答案 2 :(得分:0)
选项没有排序
SELECT MAX(CASE WHEN a.ID > b.ID THEN a.ID ELSE b.ID END)
FROM tableA a CROSS JOIN tableB b
SQLFiddle上的演示