2010-06-04 3 views
1

SQL에서 having 절의 별칭 필드를 참조해야하지만 별칭에 따옴표가있는 경우 어떻게해야합니까?SQL 별칭 필드

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

어떤 데이터베이스 유형? –

+0

데이터베이스 유형이 MYSQL – user157195

답변

4

난 당신이 FROM 절 누락 생각하고, 당신은 역 따옴표 대신 작은 따옴표를 사용한다 :

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

당신이 당신의 전체 쿼리를 게시하면 내가 여기에 조금 추측 오전 그것은이 도움이 될를 네가하고 싶은 일에 대해서.

+1

입니다. Mark는 백 틱이 아닌 작은 따옴표를 사용한다는 것을 알려 주므로 별칭을 문자열 리터럴로 처리합니다. select 부분에서 별칭은 보통 따옴표를 사용할 수 있지만 다른 곳에서는 별표를 사용해야합니다. –

+0

당신은 맞습니다. 작은 따옴표 대신 Backticks를 사용하면 별칭이 작동합니다!, 감사합니다. – user157195

2

SQL-92 표준은 작은 따옴표가 아닌 열 별칭에 큰 따옴표를 사용하도록 정의합니다. 대부분의 데이터베이스에서 큰 따옴표를 사용하는 경우에만 비정상적인 문자를 사용할 수 있습니다.

즉, 모든 데이터베이스가 GROUP BY 또는 HAVING 절에있는 (동일한 쿼리의) 열 별칭을 참조하는 것을 지원하지는 않습니다. 이식 가능한 쿼리의 경우 GROUP BY 또는 HAVING 절에서 열 별칭을 참조하는 방법을 사용하지 않는 것이 좋습니다. 또한 HAVING 절이 집계를위한 것입니다. 005 열 별칭에 대해 집계 함수 (IE : COUNT, AVG, MIN/MAX 등)가 수행되지 않으므로 제공 한 단순화 된 예제가 오류를 트리거해야합니다.

MySQL의 4.1에 나를 위해 작품 다음

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