@Starvings

Как составить запрос sql?

Подскажите, пожалуйста, как составить запрос правильно, если не в таблице не найдено значений, то выдается заданный по умолчанию ответ?
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 5
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Это надо делать не в SQL.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
COALESCE гугли

хз есть ли он в "чистом SQL", но во всех приличных СУБД есть

https://learnsql.com/blog/coalesce-function-sql/
Ответ написан
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Такое делается на уровне приложения. БД это отдельный слой - хранения, вполне нормально получить пустое значение при отсутствии значения в хранилище, он (слой) не должен оперировать логикой замены или подстановки. Логика подстановки может поменяться, и при этом у вас не должно быть изменений нигде, кроме как в конкретной точке логики приложения. Хранилище с этим никак не связано.
Ответ написан
Комментировать
@alexalexes
Бывает, нужно получить непустой результат при любых обстоятельствах.
Но так делают, не потому что нет других средств, а просто лень выписывать это за пределами SQL.
select A.*
  from (select t.col1, t.col2, ..., t.colN from t -- выборка для "не по умолчанию"
        union all 
        select def_col1, def_col2, ... def_colN from dual -- строка значений по умолчанию
       ) A
where rownum = 1 -- выбираем только первую строку, неважно из чего

PS: Вообще, обожаю такие штуки, чисто из спортивного интереса.
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
Для решения задачи набор искомых значений должен быть (синтетическим) набором записей, который используется в источнике данных запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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