직원명을 초성으로 검색할수 있도록 요청이 들어와서 급하게 만들었다. 직원수가 아주많은곳에서는 where절에 사용하면 안됨... 예) fn_korinitialkeyword('홍길동') return : ㅎㄱㄷ select * from 테이블 where fn_korinitialkeyword(직원명컬럼) like '%ㅎㄱㄷ%' function fn_korinitialkeyword( str in varchar2) return varchar2 is returnStr varchar2(100); cnt number := 0; tmpStr varchar2(10); begin if str is null then return ''; end if; cnt := length(str); for i in 1 .. cnt loop ..
오라클에서 쿼리문을 작성하다 보면 테이블에 저장되지 않는 날짜까지 포함해서 조회해야 할 경우가 있다. 이럴 때는 시작일자와 종료일자를 설정하여 날짜 뷰를 생성하여 아우터 조인을 하면 쉽게 해결이 된다. 날짜 뷰 만들기 SELECT TO_DATE('20211201','YYYYMMDD') + LEVEL - 1 AS dates FROM dual CONNECT BY LEVEL
오라클 쿼리에서 칼럼에 구분자로 입력된 값을 행으로 분리(Split)하여 조회해야 할 상황이 종종 발생한다. 대부분 값을 조회하여 프로그래밍 코드에서 구분자를 분리하는 작업을 한다. 그러나 쿼리에서 미리 행으로 분리해야 하는 경우도 발생하므로 아래의 예제를 참고하면 된다. 부하가 많이 발생할 수 있으므로 데이터가 많은 경우는 권장하지 않는다. 예제 1 - Oracle 10g 이상 (정규식 함수 사용) SELECT REGEXP_SUBSTR(a.langList, '[^|]+', 1, LEVEL) AS split_result FROM (SELECT 'Java|Kotlin|Python|Swift' AS langList FROM dual) aCONNECT BY LEVEL 위의 예제는 구..
오늘이 속한 주의 월요일부터 일요일까지 일자가 필요할때가 있다 select to_char(a.s_date, 'yyyy-mm-dd') monday , to_char(a.s_date+1, 'yyyy-mm-dd') tuesday , to_char(a.s_date+2, 'yyyy-mm-dd') wednesday , to_char(a.s_date+3, 'yyyy-mm-dd') thursday , to_char(a.s_date+4, 'yyyy-mm-dd') friday , to_char(a.s_date+5, 'yyyy-mm-dd') saturday , to_char(a.s_date+6, 'yyyy-mm-dd') sunday from ( select sysdate - (to_number(to_char(sysdate,..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.