반응형
이 문제는 SQLD 문제집에 있는 문제이고, LIKE 조건절과 LIKE JOIN에 대해서 파악하기에 좋은 문제입니다. 조인할 때 이퀄(=) 조인을 많이 하지만 BETWEEN 조인이나 LIKE 조인도 가끔 하니 결과를 예측할 수 있어야 합니다.
문제
다음 주어진 테이블에 대해서 아래 SQL를 수행하였을 때의 결과는?
EMP TABLE | CONDI TABLE | ||
EMPNO | ENAME | NO | CONDI |
1 | 지민 | 1 | %민% |
2 | 민지 | 2 | %지 |
3 | 영지 | 3 | %_지% |
[예문]
SELECT COUNT(*) CNT
FROM EMP A
, CONDI B
WHERE A.ENAME LIKE B.CONDI
1) 0
2) 1
3) 2
4) 3
5) 6
문제풀이
- LIKE 조건의 '%', '_' 특수문자의 기능을 알아야 합니다.
- '%' 모든 문자를 의미하고, '_' 는 한 글자를 의미합니다.
-- * 우선 테이블을 조인하면 모든 경우의 수를 비교하고, 조인 조건에 맞는 결과만 리턴 됩니다.
지민 = '%민%' / 지민 = '%지' / 지민 = '_지'
민지 = '%민%' / 민지 = '%지' / 민지 = '_지'
영지 = '%민%' / 영지 = '%지' / 영지 = '_지'
-- 위에 처럼 총 9번을 비교하고 TURE가 되는 결과를 리턴 합니다.
지민 = '%' -- 1개 만족
민지 = '%민%' / '%지' / '_지' -- 3개 다 만족
영지 = '%지' / '_지' -- 2개 만족
그래서 6건이 리턴 됩니다.
>> 조인은 모든 경우의 수에서 조인 조건 (테이블 = 테이블)이 TRUE 인 건만 리턴된다는 걸 명시하면 됩니다.
LIKE 조건을 간단하게 알아봤습니다. 실무에서도 자주 사용하는 조건절이니 꼭 외워두세요.
추가적인 궁금증은 댓글로 달아주세요!! :)
반응형
'SQL' 카테고리의 다른 글
SQL 강의 SQLP SQLD 기출 문제 - 012 ( DATE TYPE, TRUNC, ROUND 함수 ) (0) | 2022.10.24 |
---|---|
SQL 강의 SQLP SQLD 기출 문제 - 011 ( UNION, UNION ALL, MINUS, INTERSECT 등 ) (0) | 2022.10.21 |
SQL 강의 SQLP SQLD 기출 문제 - 009 ( UNION ALL ) (0) | 2022.10.13 |
SQL 강의 SQLP SQLD 기출 문제 - 008 ( COUNT 집계 함수 ) (0) | 2022.10.12 |
SQL 강의 SQLP SQLD 기출 문제 - 007 ( NULL 체크 함수 ) (0) | 2022.10.10 |
댓글