#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