我需要从两个表中查询最大 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?
我需要从两个表中查询最大 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?
这是根据你说的,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
SELECT MAX(id)
FROM (SELECT ID FROM tableA
UNION
SELECT ID FROM tableB) AS D
不排序选项
SELECT MAX(CASE WHEN a.ID > b.ID THEN a.ID ELSE b.ID END)
FROM tableA a CROSS JOIN tableB b
SQLFiddle上的演示