Задать вопрос
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) - то есть то единственное значение какое есть в таблице.

Может я вообще все делаю неправильно, поправьте если можете.
  • Вопрос задан
  • 216 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы