Oracle 기준으로, 위치코드에서 첫 번째 '-' 바로 뒤의 두 자리… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 8회
Oracle 기준으로, 위치코드에서 첫 번째 '-' 바로 뒤의 두 자리(랙 번호)만 다음 결과처럼 조회하려 한다. ( ㉠ )에 들어갈 식으로 옳은 것은?

[로케이션]

품목코드위치코드
P1A-03-12
P2B1-07-02
P3C-11-30
P4DD-02-05
SELECT 품목코드, ( ㉠ ) AS 랙
  FROM 로케이션
 ORDER BY 품목코드;

[원하는 결과]

품목코드랙
P103
P207
P311
P402
1
SUBSTR(위치코드, INSTR(위치코드, '-') + 1, 2)
2
SUBSTR(위치코드, LENGTH(위치코드) - 4)
3
LTRIM(SUBSTR(위치코드, 2, 3), '-')
4
SUBSTR(위치코드, 3, 2)
해설

INSTR(위치코드, '-') 는 첫 번째 하이픈의 위치를 돌려주므로 여기에 1 을 더한 곳부터 2글자를 자르면 앞부분 길이가 달라도 03·07·11·02 가 나온다.

고정 위치로 자르는 식은 앞 토막이 B1·DD 처럼 두 글자인 코드에서 어긋난다.

  • 시작 위치를 3 으로 고정하면 B1-07-02 에서 '-0' 이 나온다.
  • 2~4번째 글자에서 하이픈만 지우면 B1 은 '1-0', DD 는 'D-0' 이 된다.
  • 뒤에서 5글자를 자르면 '03-12' 처럼 뒤 토막까지 함께 나온다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 8회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기