поле псевдонима sql - PullRequest
1 голос
/ 05 июня 2010

в SQL, предполагается, что мне нужно сослаться на псевдоним поля в предложении has, но псевдоним содержит кавычки, как мне это сделать?

select (select...) as '005'
group by ...
having '005'>0

Ответы [ 2 ]

4 голосов
/ 05 июня 2010

Я думаю, что вам не хватает предложения FROM, и вы должны использовать обратные кавычки вместо одинарных кавычек:

SELECT (SELECT ...) AS `005`
FROM table1
GROUP BY ...
HAVING `005` > 0

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

2 голосов
/ 05 июня 2010

Стандарт SQL-92 определяет использование двойных кавычек для псевдонима столбца, а не одинарных кавычек. В большинстве баз данных необычные символы допускаются только при использовании двойных кавычек.

Тем не менее, не все базы данных поддерживают ссылку на псевдоним столбца (в том же запросе) в предложениях GROUP BY или HAVING. Для переносимых запросов я не рекомендую указывать псевдоним столбца в предложениях GROUP BY или HAVING. Кроме того, предложение HAVING предназначено для агрегатов - приведенный вами упрощенный пример должен вызвать ошибку, поскольку агрегатная функция (IE: COUNT, AVG, MIN / MAX и т. Д.) Не выполняется для псевдонима столбца 005.

На MySQL 4.1 у меня работает следующее:

  SELECT COUNT(*) AS "005"
    FROM TABLE t
GROUP BY ...
  HAVING `005` > 0
...