출처:https://sas-study.tistory.com/387
출처 : 현재 상태와 이력을 별개의 테이블로 관리하는 곳도 있지만 둘을 분리하지 않고 이력테이블에서 최종 데이터를 읽어오도록 설계하는 곳도 꽤나 많다 이럴 경우에는 그동안 아래와 같이 쿼리를 짜곤했다. SELECT 원하는 컬럼들... FROM 테이블명 WHERE (키값, 최종이력날짜) IN (SELECT 키값, MAX(이력날짜) FROM 테이블명 GROUP BY 키값) IN 을 쓰든 EXISTS를 쓰던 그건 테이블의 데이터 크기나 구조에 따라서 달라질 수는 있지만 아무튼 최종 데이터를 읽으려면 위와 같이 쓰는 수밖에 없었다. 이 부분을 해결한게 있으니 바로 KEEP DENSE_RANK LAST (혹은 FIRST) 이다. 위와 똑같은 쿼리를 KEEP DENSE_RANK LAST를 쓰게 되면 아래와 같다. ..
출처 : FOR UPDATE 문 - 9i부터 사용 가능 - SELECT 문으로 사용자가 임의로 lock를 걸 수 있는 명령어 형식 1. FOR UPDATE with no option - lock를 획득하기 까지 무한정 기다림 - ex) select * from detp where dept_no = '1111' for update; - 이렇게 하면 동일 세션에서 transaction을 해제(commit등) 을 하기 전까지는 결과셋에 대해서 lock이 걸립니다. 2. FOR UPDATE NOWAIT(= WAIT 0) - lock를 회득하지 못하면 바로 exception 처리 됩니다. - select * from detp where dept_no ='1111' for update nowait; - 결과 적으로..
select CDNO, LAG(CDNO,1,'0') OVER(ORDER BY CDNO) CDNO_PREV CDNO보다 1 작은 CDNO의 데이터를 함께 보기 출처 : https://gent.tistory.com/339 오라클에서 이전 행의 값을 찾거나 다음 행의 값을 찾기 위해서는 LAG, LEAD 함수를 사용하면 된다. LAG(expr [,offset] [,default]) OVER([partition_by_clause] order_by_clause) LEAD(expr [,offset] [,default]) OVER([partition_by_clause] order_by_clause) LAG 함수 : 이전 행의 값을 리턴 LEAD 함수 : 다음 행의 값을 리턴 expr : 대상 컬럼명 offset : ..
출처 : https://cjbox.tistory.com/m/39 where절 AND (((30 = A.QRY_RNG ) AND (A.REQ_DEPT LIKE '%'||''||'%')) OR ((10 = A.QRY_RNG ) and (A.REQ_DEPT LIKE '%'||?||'%'))) 위 구문을 풀이해보면 if (30 == A.QRY_RNG) { A.REQ_DEPT_LIKE '%'||''||'%' }else if ( 10 == A.QRY_RNG) { A.REQ_DEPT_LIKE '%'||?||'%' }
- Total
- Today
- Yesterday
- QueryDSL
- lombok
- setter
- $.each
- 전후방탐색
- 진열사랑
- object key
- devtools
- spring
- 프로젝트명변경
- border-collapse
- @ExceptionHandler
- getter
- Keycode
- draw.io
- springboot
- caniuse
- 정규식
- $.extend
- CSS
- element위치
- Javascript
- PostgreSQL
- JQuery
- ul li로 테이블
- sumifs
- DatePicker
- excel
- oracle
- 여러 컬럼 update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |