Как сослаться на 'decider' в предложении where из следующего запроса mysql? - PullRequest
1 голос
/ 02 июня 2011

Как обратиться к 'decider' в предложении where из следующего запроса mysql?

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
       END as decider
  FROM t1,
       t2 
 WHERE cond12
   AND decider <> NULL

Я попробовал, и я получил ошибку 1054: Unknown column in where clause.

1 Ответ

1 голос
/ 02 июня 2011

Использование:

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
         ELSE NULL
       END as decider
  FROM t1,
       t2 
 WHERE cond12
HAVING decider IS NOT NULL
  1. Самым ранним MySQL, позволяющим использовать псевдонимы столбцов, является предложение GROUP BY
  2. Необходимо использовать IS NULL или IS NOT NULL (где это уместно), поскольку NULL не является значением - это заполнитель для отсутствия какого-либо значения, что требует специальной обработки в SQL
...