5

2 つのテーブルから最大 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 のみを返す必要があります。

両方のクエリを 1 つのクエリに結合して最大 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 に答える