17 правил хорошего тона при написании SQL запросов

27 января 2013, 23:29

При написании SQL запросов есть ряд правил, которым нужно просто следовать. Можно вдаваться в поиски, почему надо писать так, а не иначе, но для понимания нужен багаж и некоторый практический опыт, а ведь зачастую SELECT’ы надо писать уже сейчас, да так, чтобы они летали и после не переписывать. Как писать смотрим здесь: Правило WHERE Правило HAVING Комбинированные подзапросы Операции EXISTS, IN, Join Операция DISTINCT Функция DECODE Операция UNION ALL Anti-Join Примеры взял из дайджеста Oracle SQL изнутри Правило WHERE Условие можно записать так, что оно полностью отключит оптимизатор.

Категория: Всё про Oracle
  • # 4
    Неточности и ошибки

    SELECT doc_dd, customer_n, total_doc
    FROM exdoc
    WHERE doc_dd BETWEEN TRUNC( sysdate)
    AND TRUNC( sysdate) + 0.999;

    не эквивалентно сравнению TRUNC( doc_dd) = TRUNC( sysdate), так как теряется почти 2 минуты от конца суток

    SELECT doc_dd, customer_n, total_doc
    FROM exdoc
    WHERE total_doc > 0;

    Сделайте пометку, что справедливо только для положительных total_doc. Иначе - сравнение только по модулю ABS(total_doc) > 0;

Комментарии к этой заметке больше не принимаются.