now is better than never
[Oracle] 이메일에서 도메인 추출하기 - INSTR, SUBSTR, REGEXP_SUBSTR / 첫 번째 행 출력하기 - (LIMIT, TOP) 본문
SQL/프로젝트
[Oracle] 이메일에서 도메인 추출하기 - INSTR, SUBSTR, REGEXP_SUBSTR / 첫 번째 행 출력하기 - (LIMIT, TOP)
김초송 2022. 12. 2. 15:24INSTR(컬럼, '철자')
: 컬럼의 데이터에서 특정 철자(문자, 숫자, 특수문자)의 자리번호를 출력
SUBSTR(컬럼, 시작위치, 길이)
: 컬럼의 데이터에서 시작위치부터 길이까지 문자열 출력
순서는 1부터 시작
select substr(email, instr(email, '@')+1, length(email)-instr(email, '@')) domain
from emp;
- instr(email, '@')+1 : @ 다음 문자부터
select substr(email, instr(email, '@')+1, instr(email, '.')-instr(email, '@')-1) domain
from emp;
- instr(email, '.')-(instr(email, '@')+1) : @ 다음부터 . 까지 문자의 개수
regexp_substr 설명 :
https://kimchocosong.tistory.com/49
[Oracle] 날짜 데이터 년, 월, 일 추출하기 - REGEXP_SUBSTR
생년월일 데이터로 같은 생일인 사람이 있는지 알고 싶은데 오라클에 년, 월, 일 추출 함수가 없나...? 찾아보니 EXTRACT 라는 함수가 있긴 한데 select birthday, count(*) from (select empno , extract(month from bir
kimchocosong.tistory.com
select regexp_substr(email, '[^@]+', 1, 2) domain
from emp;
닷컴을 지우고 싶으면 한번 더 정규식 적용하면 된다
select regexp_substr(regexp_substr(email, '[^@]+', 1, 2),'[^.]+', 1, 1) domain
from emp;
-- 서울에서 가장 긴 상호명 출력
select 상호명, length(상호명)
from market_2022
order by 2 desc fetch first 1 rows only;
( ORDER BY 컬럼 (ASC / DESC) ) FETCH FIRST 숫자 ROWS ONLY
: 정렬된 결과에서 숫자만큼 행 출력
mySQL은 limit 하면 되고 MSSQL은 top으로 하면되는데 오라클은 뭐 이렇게 긴지...
dual 써야되는 것도 귀찮고.. mySQL은 안 써도 됐는데.... 갈수록 마음에 안든다 ㅋㅋㅋㅋ ㅠ
본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.
'SQL > 프로젝트' 카테고리의 다른 글
[Oracle] 상관계수 구하기 - corr (0) | 2022.12.07 |
---|---|
[Oracle] 달러-원화 환율 데이터 분석하기 (0) | 2022.12.05 |
[Oracle] 공공데이터 서울 상가(상권)정보 분석하기 2 (0) | 2022.12.02 |
[Oracle] 공공데이터 서울 상가(상권)정보 분석하기 1 - PIVOT (0) | 2022.12.01 |
[Oracle] 날짜 데이터 년, 월, 일 추출하기 - TO_CHAR, REGEXP_SUBSTR (0) | 2022.11.30 |