Oracle 에서 다음 SQL 의 결과 값은?[계약]계약번호증권번호1L… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
Oracle 에서 다음 SQL 의 결과 값은?[계약]
| 계약번호 | 증권번호 |
|---|---|
| 1 | LF-2026 |
| 2 | NL2027 |
| 3 | lf-2026 |
| 4 | LFNL-2026 |
| 5 | NL-20261 |
| 6 | NL-0007 |
| 7 | LF-202 |
SELECT COUNT(*)
FROM 계약
WHERE REGEXP_LIKE(증권번호, '^(LF|NL)-?\d{4}$');1
4
2
3
3
1
4
2
해설
패턴은 LF 또는 NL 로 시작해 하이픈이 0~1개(
-?) 온 뒤 숫자 정확히 4개로 끝나야 하므로 LF-2026, NL2027, NL-0007 세 행이 일치한다.REGEXP_LIKE 는 기본으로 대소문자를 구분하고, ^ 와 $ 앵커가 앞뒤에 다른 문자가 붙는 것을 막는다.
- lf-2026 은 소문자라 LF 와 일치하지 않는다.
- LFNL-2026 은 선택 그룹이 한 번만 와야 하는데 LF 뒤에 NL 이 붙어 탈락한다.
- NL-20261 과 LF-202 는 숫자가 4개가 아니어서 끝 조건을 만족하지 못한다.
오류나 개정된 내용이 보이면 알려주세요