일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- Express
- Java
- Sqoop
- xPlatform
- JavaScript
- Python
- NPM
- SPC
- 공정능력
- 보조정렬
- plugin
- table
- hadoop
- tomcat
- R
- window
- es6
- IntelliJ
- SQL
- Eclipse
- vaadin
- Kotlin
- mybatis
- react
- MSSQL
- SSL
- mapreduce
- Spring
- GIT
- Today
- Total
목록SQL (11)
DBILITY
오라클에서 테스트 되었으며, 생각나는대로 작성했습니다. 오라클뿐만 아니라,요즘엔 CTE ( Common Table Expression )이 표준에 포함되어 대부분 지원하니까 다른 벤더제품에서도 응용하면 됩니다. 첫번째 WITH T1 ( CD , CN1 ,CN2 ,CN3 ,CN4,CN5 ) AS ( SELECT '1001','1','2','3','4','5' FROM DUAL UNION ALL SELECT '1001','6','7','8','9','10' FROM DUAL ), T2 AS ( SELECT LEVEL RN FROM DUAL CONNECT BY LEVEL
T1은 CD의 VAL값의 변동을 기록한 이력테이블입니다. 점으로 저장된 시간을 선분조건이 가능하도록 합니다. 업무규칙은 처음일자 이전은 처음일자부터 다음일자까지 모두 처음값을 사용하고, 중복된 일자가 없으며,마지막일자는 미래(현재포함)까지 사용되고 있다는 조건이 주어진 경우입니다. 인사기록을 기준으로 경력증명서에 직급별 재직기간을 표시할때 응용한다면, 시작일자 SDT부분이 DT만 있으면 되고,종료일자 EDT의 '99991231'는 '현재'로 바꾸면 되겠죠. 설명이 이해가 안가는군요. WITH T1 ( CD, VAL, DT ) AS ( SELECT '1001',9.2,'20150101' FROM DUAL UNION ALL SELECT '1001',8.5,'20150601' FROM DUAL UNION AL..
사람은 10진 기수법에 익숙하고, 2진법의 32승까지는 학생때 외워서 조금 기억이 나지만, 시간은 60진법을 사용한다는 사실에 자주 혼돈에 빠지는 부분입니다. SELECT SYSDATE, SYSDATE-0.00001, SYSDATE-NUMTODSINTERVAL(1,'SECOND') FROM DUAL NUMTOYMINTERVAL(NUMBER, TYPE OF INTERVAL) TYPE OF INTERVAL = 'YEAR', 'MONTH' NUMTODSINTERVAL(NUMBER, TYPE OF INTERVAL) TYPE OF INTERVAL = 'SECOND', 'MINUTE', 'HOUR', 'DAY'
소장하고픈 책이지만 절판된 책으로SQL의 기본과 응용에 대해 가장 잘 설명한 책입니다.물론, 저는 구매하여 읽지는 못했습니다.훌륭하신 저자께서 블로그에 원문을 포함하여 실습스크립트까지 공개하고 있습니다. 오라클실습(전문가로 가는 지름길)
ROWNUM은 WINDOW FUNCTION으로 대체할 수 있습니다. DB2 for i Series도 OLAP FUNCTION으로 ROW_NUMBER를 지원합니다. 중요한 건 MOD~ WITH T1 (EMPNO,ENAME) AS ( SELECT '7369','SMITH' FROM DUAL UNION ALL SELECT '7499','ALLEN' FROM DUAL UNION ALL SELECT '7521','WARD' FROM DUAL UNION ALL SELECT '7566','JONES' FROM DUAL UNION ALL SELECT '7654','MARTIN' FROM DUAL UNION ALL SELECT '7698','BLAKE' FROM DUAL UNION ALL SELECT '7782','CL..