5

我需要从两个表中查询最大 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?

4

3 回答 3

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
于 2013-01-22T15:18:11.670 回答
3
SELECT MAX(id)
FROM (SELECT ID FROM tableA
      UNION
      SELECT ID FROM tableB) AS D
于 2013-01-22T15:18:58.397 回答
0

不排序选项

SELECT MAX(CASE WHEN a.ID > b.ID THEN a.ID ELSE b.ID END)
FROM tableA a CROSS JOIN tableB b

SQLFiddle上的演示

于 2013-01-22T21:29:31.507 回答