получение максимума из двух столбцов двух таблиц

#sql #select

#sql #выберите

Вопрос:

у меня есть две таблицы

t1

 id     name
1      saanu
3      abc
  

delT1

 id    name
2     val2
4     val4
  

Я должен узнать максимальное значение id (int) из двух таблиц.

Ответ №1:

 select max(maxId) from
(
    select max(id) as maxId from delT1
    union all
    select max(id) as maxId from t1
) maxes;
  

Комментарии:

1. это не работает, это выдает «Неправильный синтаксис рядом с ‘)'» error.by способ, который мне нужен для ms sql server 2005

2. @mu слишком короткий: эти 10 секунд были тем временем, когда вы правильно разместили псевдоним в производной таблице…

3. @gbn: ну, мой SQL не был недействительным, учитывая, что op не указал СУБД, которую он использует…

4. @mu: ОБЪЕДИНЕНИЕ ВСЕХ вместо ОБЪЕДИНЕНИЯ сохраняет одно сравнение двух максимальных значений.

5. @mu: Я знаю, что ты это сказал. Но, на мой взгляд, UNION ALL более корректен, чем UNION, потому что операция DISTINCT, выполняемая UNION, в нашем случае не нужна. И отсутствие псевдонима не было опечаткой, потому что это допустимо в Oracle.

Ответ №2:

 select  mymax =  
    case 
        when MAX(id1) > MAX(id2) then MAX(id1) 
        when MAX(id2) > MAX(id1) then MAX(id2) 
        end 
        from table1,table2