sql从这两个表中获取最大数量?

时间:2013-01-22 15:17:04

标签: sql sql-server tsql

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

3 个答案:

答案 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上的演示