|
♧ 정의 : LIKE의 경우는 Simple Pattern Matching인데 반해 REGEXP는 일정 Pattern 에 의한 검색이 가능하다.
【Version】ORACLE 10g
【형식】REGEXP_LIKE(variable, 'pattern')
【예제】SELECT ename FROM EMP WHERE REGEXP_LIKE (ename, '^J.(M|N)');
【결과】ename이 'J'로 시작하면서 세번째 문자가 M or N인 데이터를 찾는다.
【PATTERN】^ : 시작을 의미. ^뒤에 나오는 문자가 반드시 시작되어야 한다. . : 해당 자리수는 어떤 문자가 나와도 상관없다. (A|B|C) : 부분식 -> 해당자리수에서 A,B,C 중 하나만 나와도 검색이 된다. {} : 반복 -> [] : 한문자 범위 -> 0-9, a-zA-Z, - [a-zA-Z-] ^[[:digit:]] : 숫자로 시작하는 패턴 검색
|
|
♧ 정의 : self join하지 않고 하나의 테이블에서 동시에 한 행(row)이상을 접근하여 자료를 가져 올 수 있다. 즉, n개의 Record를 조회할 때 현재 Record와 이전Record의 값을 한Record로 보여줄 수 있다. - 반대로 하위 행을 찾는 함수는 LEAD 함수 이다.
【Version】 ORACLE 8.1.6
【형식】LAG(value_expr [,offset] [,default] ) OVER (PARTITION BY [partition_clause] ORDER BY [order_by_clause] )
【예제】SQL> SELECT name,salary,LAG(salary,1,0) OVER (ORDER BY salary) FROM employees;
【결과】 NAME SALARY LAG(SALARY,1,0)OVER(ORDERBYSALARY) ---------- ---------- ---------------------------------- jijoe 220 0 Joe 240 220 Cho 250 240 kim 250 250 |