Динамически передать переменную в оператор where - PullRequest
0 голосов
/ 30 октября 2019

Я могу выбрать из базы данных, передавая динамические переменные, такие как :Type и :Code, используя следующую инструкцию:

SELECT "MSG" as "MESSAGE" FROM "TABLENAME" WHERE "TYPE" = :Type AND "CODE" = :Code

Однако, допустим, я хочу передать впеременная условно для Type. Если в базе данных столбец Type имеет значение All, выберите значение All, в противном случае, если в столбце Type показаны другие значения, замените :Type на переданные аргументы. Примерно так:

  SELECT "MSG" as "MESSAGE" FROM "TABLENAME" 
  WHERE 
   IF "TYPE" = "All"
     "TYPE" = "All"
   ELSE 
     "TYPE" = :Type
  AND "CODE" = :Code 

Какой правильный синтаксис для этого сценария?

1 Ответ

0 голосов
/ 31 октября 2019

Для чего-то с ограниченным числом случаев (два в вашем примере) я бы просто использовал два разных оператора SQL и использовал логику JavaScript, чтобы решить, какой из них выполнить.

Вы также можете исследовать с помощью CASEутверждение в ГДЕ КЛАУЗЕ или может быть в каком-то СОЮЗЕ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...