svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺

Сложный запрос в SQL с условием? Возможно ли это?

Пишу такой запрос (здесь упрощенно):
SELECT
            `name`,
            (SELECT `value` FROM `t` ORDER BY `value` DESC LIMIT 1,1) AS `second_value`,
FROM `t`;


То есть нужно получить второе по большинству значение из таблицы `t` упорядоченной по `value`. Иногда эта таблица имеет только одну строку и тогда SQL возвращает NULL, а нужно что бы возвращала (SELECT `value` FROM `t` ORDER BY `value` DESC LIMIT 0,1) - то есть то единственное значение какое есть в таблице.

Может я вообще все делаю неправильно, поправьте если можете.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега MySQL
Есть функция IFNULL, можно в нее два подзапроса передать.
Правда, какой-то кривизной решение отдает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `value`
    FROM (SELECT `value` FROM `t` ORDER BY `value` LIMIT 2) AS `t1`
    ORDER BY `value` DESC
    LIMIT 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы