Проблема с запросом SQL в выборе одного или нескольких результатов

Чтобы быть тупым, я вижу это как:

Хорошие программисты програмируют оборону, Bad программисты этого не делают.

Так как есть несколько примеров выше, и мой собственный подобный опыт с связанными ошибками чтобы забыть скобки, я узнал, как трудно ВСЕГДА ОТКРЫТЬ БРАКЫ.

Все остальное выбирает личный стиль над безопасностью, и это явно плохое программирование.

Джоэл даже упоминает об этом в Нарушение неправильного кода

После того, как вы получите ошибку из-за отсутствия фигурных скобок, вы узнаете, что отсутствующие фигурные скобки выглядят неправильно, потому что вы знаете, что это потенциальное место для возникновения другой ошибки.

1
задан GMB 29 March 2019 в 14:43
поделиться

1 ответ

Для меня ваша логика выбора записей должна быть выражена в виде условия в предложении WHERE, например:

(:p_terminal LIKE 'CN%' AND sm.terminalid like 'CN%')
OR (:p_terminal NOT LIKE 'CN%' AND sm.terminalid = :p_terminal)

Когда данный параметр выглядит как начинается с 'CN', выбираются все записи. где terminalid начинается с 'CN'. Иначе он выбирает записи, где terminalid равно параметру.

Запрос:

SELECT 
    sm.terminalid as terminalcode,
    sm.sums as Latest_sums
FROM sums1 sm
WHERE 
    (:p_terminal LIKE 'CN%' AND sm.terminalid like 'CN%')
    OR (:p_terminal NOT LIKE 'CN%' AND sm.terminalid = :p_terminal)
0
ответ дан GMB 29 March 2019 в 14:43
поделиться
Другие вопросы по тегам:

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