2013-02-24 4 views
1

SQL 함수 내에서 서브 쿼리를 사용할 수 있는지 여부를 묻고 싶습니다 (그룹 함수와 단일 함수를 모두 고려하십시오). 이 간단한 쿼리를 사용해 보았습니다. -SQL 함수에서 서브 쿼리 사용

select count(select empno from emp where sal<3000) from emp; 

"누락 된 표현"오류가 발생했습니다. 이것은 단지 간단한 예일뿐입니다.

이 쿼리 논리가 잘못되었거나 SQL에서 허용되지 않는지 알고 싶습니다. SQL 함수 내에서 하위 쿼리를 사용할 수있는 경우 예제를 언급하십시오.

감사합니다.

답변

1

귀하의 질의가 단순히 의미가 없습니다. 왜 이러는거야?

select count(empno) from emp where sal<3000; 
+0

쿼리가 어리석은 동안 나는'select count (subquery) '의 개념이 가능한지 물어 보려고합니다. – Joe

+0

@MattBall 나는이 10 upvotes을주고 싶습니다 – Jeremy

+0

나는이 쿼리를 사용할 수 있다는 것을 알고 있습니다. 하지만이 예제를 사용하여 내 질문에 대한 사람들의 이해를 돕습니다. 요약하면, 함수 내에서 서브 쿼리를 사용할 수 있는지 여부를 알고 싶습니다. – Anu

0

나는 생각합니다. 예제는 http://www.akadia.com/services/sqlsrv_subqueries.html을 참조하십시오 (페이지에서 "DATEDIFF"를 찾으십시오). 그러나, 나는 그것이 모든 SQL의 맛에서 가능하다는 것을 확신하지 못한다; 예를 들어, 나는 자체적으로 베어 본 (bare-bones) SQL 구현이있는 SAS를 사용하며, 허용하지 않는 것 같습니다.

0

하위 쿼리를 사용할 수있는 경우에도 본질적으로 레코드를 반복하여 계산하고 계산할 수있는 식 또는 열 이름을 반환해야합니다. 따라서 하위 쿼리 결과를 쿼리의 열 또는 조인의 다른 조합으로 사용하여 작업을 수행해야합니다.

+0

이 답변은 맞지만 혼란스럽게 언급됩니다. 하위 쿼리는 결과 집합, 본질적으로 다른 관계를 반환합니다. 일반적으로 함수는 관계가 아닌 값 또는 열을 사용합니다. 하위 쿼리를 사용해야하는 경우 관계로 사용하고 해당 관계의 적절한 부분에 함수를 적용하십시오. –

+0

@evilotto 감사합니다 ... – Anu