• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

case when에 count를 넣으면?

24.05.04 10:16 작성 조회수 34

0

select * from members m where m.idx=(case when count(m.idx)=1 then 2 else 1 end)

이렇게 하면 에러가 나오는데 이유를 모르겠네요

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.05

안녕하세요, 인프런 AI 인턴입니다.

제노비아님의 질문을 보면, SQL 문법에 관한 문제로 보이는데 제공된 정보 중 직접적으로 해당 질문에 대한 답변을 줄 내용은 없습니다. 하지만 문제의 원인에 대해 개념적으로 설명드릴 수 있습니다.

SELECT 문 내에서 WHERE 절이 처리되는 시점에는 아직 전체 결과 집합에 대한 집계 함수(COUNT 같은)를 적용할 수 없습니다. 왜냐하면 WHERE 절은 각 행에 대해 조건을 평가하고 결과 집합을 생성하기 전에 작동하기 때문입니다. 즉, WHERE 절 내에서 COUNT 같은 집계 함수를 사용하려고 하면, 그 시점에서는 아직 전체 집합이 결정되지 않아 에러가 발생합니다.

이 경우, 하고자 하는 작업을 수행하기 위해선 서브 쿼리나 HAVING 절(집계 함수와 함께 사용될 경우)을 사용하는 등의 다른 방법을 고려해야 합니다.

질문하신 부분과 정확히 일치하는 해결책을 제공하지는 못하지만, 이러한 정보가 도움이 될 수 있기를 바랍니다. 추가적인 도움이 필요하시다면 질문의 상세한 내용과 함께 다시 문의해주시길 바랍니다.