다음 A, B 테이블과 SQL문을 보고 출력되는 행의 수를 쓰시오.
A 테이블
B 테이블
SELECT COUNT(*) AS CNT
FROM A CROSS JOIN B
WHERE A.NAME LIKE B.RULE;| NAME |
|---|
| SMITH |
| ALLEN |
| SCOTT |
| RULE |
|---|
| S% |
| %T% |
모범답안
4
풀이와 판단 근거
CROSS JOIN으로 A의 3행과 B의 2행을 조합하면 먼저 6행이 생긴다. 대문자로 제시된 SMITH와 SCOTT은 모두 S%에 일치하고, 두 이름 모두 문자 T를 포함해 %T%에도 일치한다.
ALLEN은 어느 패턴에도 일치하지 않는다. WHERE를 통과하는 조합은 2+2=4행이므로 COUNT(*)는 4다.
입력 문자열과 패턴의 대소문자를 통일해 DBMS별 비교 규칙 차이도 제거했다.
자주 틀리는 지점
- CROSS JOIN의 전체 6행을 WHERE 적용 뒤 결과로 그대로 답함
- 한 이름이 두 RULE 행과 각각 일치하면 결과 조합도 두 행이라는 점을 놓침
- LIKE의 %가 0개 이상의 문자를 뜻한다는 점을 잘못 적용함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.