본문 바로가기
SQL

SQL 강의 SQLP SQLD 기출 문제 - 010 ( LIKE, JOIN )

by SQL Master 2022. 10. 20.
반응형

이 문제는 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 조건을 간단하게 알아봤습니다. 실무에서도 자주 사용하는 조건절이니 꼭 외워두세요.

추가적인 궁금증은 댓글로 달아주세요!! :)

 

반응형

댓글