728x90
매일 SQLD 기출 문제 풀기 챌린지
[문제2]
다음에 주어진 테이블 SQLD_2 로 다음의 결과를 출력하는 SQL은 ?
테이블 SQLD_2 | |
ID | NAME |
1 | ___A |
2 | B |
3 | ___C |
4 | D |
5 | E |
6 | ___F |
결과 | |
ID | NAME |
1 | ___A |
3 | ___C |
6 | ___F |
① select * from SQLD_2 where name like '%%';
② select * from SQLD_2 where name like '%#_%';
③ select * from SQLD_2 where name like '%@_%' escape '@';
④ select * from SQLD_2 where name like '%%' escape '';
해설해보기
위의 결과는 SQLD_2테이블에서
NAME에 언더바(_)가 포함된 사람의
모든 행을 출력하는것을 의미한다.
like와 함께 쓰인 와일드카드(%)는 개수 상관없이 아무거나 와도 된다는 의미이며,
like와 함께 쓰인 언더바(_)는 1개의 자릿수를 나타내고, 이 자리에 뭐가 와도 관계없다는 의미이다.
③, ④ 에 사용된 escape 옵션
escape[특정문자]
특정 문자 바로 다음에 나오는 와일드카드(%) 혹은 언더바(_)는
특수문자로 사용되었다는 것을 알려주는 옵션이다.
특수문자나 공백문자등을 like로 검색하고 싶을 때 escape 옵션을 사용해야한다.
따라서 정답은
③
실행해보기
# 1번
select * from SQLD_2 where name like '%%';
# 2번
select * from SQLD_2 where name like '%#_%';
# 3번
select * from SQLD_2 where name like '%@_%' escape '@';
# 4번
select * from SQLD_2 where name like '%%' escape '';
관련스크립트
-관련스크립트-
create table SQLD_2
( ID NUMBER(10),
NAME VARCHAR2(20) ) ;
insert into sqld_2 values ( 1, '___A');
insert into sqld_2 values ( 2, 'B');
insert into sqld_2 values ( 3, '___C');
insert into sqld_2 values ( 4, 'D');
insert into sqld_2 values ( 5, 'E');
insert into sqld_2 values ( 6, '___F');
commit;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 6> 문자 함수 SUBSTR에 대한 기출문제 (0) | 2024.03.06 |
---|---|
<SQLD 5> is null 연산자를 사용법에 대한 기출문제 (2) | 2024.03.06 |
<SQLD 4> between .. and 연산자를 사용법에 대한 기출문제 (0) | 2024.03.04 |
<SQLD 3> in 연산자를 사용법에 대한 기출문제 (0) | 2024.03.03 |
<SQLD 1> like 연산자를 사용법에 대한 기출문제 1 (0) | 2024.03.01 |