Oracle 14

[오라클|Oracle] 시간타입 소수점까지 제어하기 - TO_TIMESTAMP

이 전 [오라클|Oracle] 날짜타입 가지고 놀기 - TO_DATE, TOCHAR ​☜ 포스트에서 날짜 타입을 제어하는 방법을 알아봤었습니다. TO_DATETIME 과 SYSDATE를 사용하는 방법이었습니다. 그런데, 이 방법은 년-월-일 시:분:초 까지만 제어나 통제가 가능한 방법이었습니다. 그래서 오늘은 초(Second)의 소수점까지 제어할 수 있는 함수를 알아보도록 하겠습니다. 위 제목에서도 나와있듯이 TO_TIMESTAMP 함수 입니다. 기본적으로 TIMESTAMP 함수를 호출하는 방법입니다. SELECT SYSTIMESTAMP FROM DUAL NOW 2014/08/28 04:52:48.420100000​ TIMESTAMP 타입을 CHAR 타입으로 변환하는 방법입니다. SELECT TO_CHA..

IT 개발 2014.08.30

[오라클|Oracle] GROUP 별로 따로 ROWNUM 주기 - PARTITION BY

SELECT '가족' A, '아버지' B FROM DUAL UNION SELECT '가족' A, '어머니' B FROM DUAL UNION SELECT '가족' A, '형' B FROM DUAL UNION SELECT '가족' A, '누나' B FROM DUAL UNION SELECT '친가' A, '삼촌' B FROM DUAL UNION SELECT '친가' A, '고모' B FROM DUAL UNION SELECT '외가' A, '외삼촌' B FROM DUAL UNION SELECT '외가' A, '이모' B FROM DUAL ORDER BY B; A B 1 가족 누나 2 가족 아버지 3 가족 어머니 4 가족 형 5 외가 외삼촌 6 외가 이모 7 친가 고모 8 친가 삼촌 라는 테이블이 있습니다. 이 ..

IT 개발 2014.07.17

[오라클|Oracle] 위(이전)/아래(이후) Row의 값 가져오기 - LAG, LEAD

오라클 Oracle 위 아래 값 LAG LEAD 쿼리를 하다보면 해당 Row의 위 또는 아래 Row에 있는 값을 가져오고 싶을 때가 있습니다. 그럴때는 LAG (이전 Row 값), LEAD (다음 Row 값) 함수를 사용하시면 됩니다. SELECT ROWNUM RN FROM TABS WHERE ROWNUM < 6; RN 1 1 2 2 3 3 4 4 5 5 이런 테이블이 있습니다. 이 테이블에 대해, SELECT LAG(RN) OVER (ORDER BY RN) 앞수, RN 해당수, LEAD(RN) OVER (ORDER BY RN) 뒷수 FROM ( SELECT ROWNUM RN FROM TABS WHERE ROWNUM < 6) ORDER BY RN 쿼리를 사용하시면 앞수 해당수 뒷수 1 1 2 2 1 2 ..

IT 개발 2014.07.16

[오라클|Oracle] 여러 개의 테이블을 하나처럼 만들기 - UNION / UNION ALL

[오라클|Oracle] UNION / UNION ALL 두 개 이상의 테이블을 하나의 테이블인 합쳐서 써야 할 때가 있습니다. 그런 경우 UNION을 사용하시면 됩니다. SELECT SYSDATE FROM DUAL; SYSDATE 1 2013/09/27 12:02:17 SELECT TABLE_NAME FROM TABS WHERE ROWNUM = 1; TABLE_NAME 1 ACTIVITY 이렇게 두 개의 테이블이 있고, 이 두 테이블을 하나의 테이블로 합치고 싶다면, SELECT SYSDATE A FROM DUAL UNION SELECT TABLE_NAME A FROM TABS WHERE ROWNUM = 1; 이렇게 하시면 'ORA-01790: 대응하는 식과 같은 데이터 유형이어야 합니다.' 라는 에러가..

IT 개발 2014.07.12

Oracle to MSSQL 쿼리 변환 시 검토할 점

Oracle to MSSQL 쿼리 변환 시 검토할 점 1. Sub Query에 Alies는 필수 2. Sub Query 내에 ORDER BY 절을 사용할 수 없음 3. NVL 함수는 ISNULL로 대체 4. SUBSTR 함수는 SUBSTRING으로 대체 5. 문자열 연결 ||는 +로 대체 6. TRIM 함수는 LTRIM(RTRIM(FieldName))으로 대체 7. STDDEV 함수는 STDEV로 대체 8. CEIL 함수는 CEILING으로 대체 9. ROWNUM - ORDER BY 절 없이 WHERE 절에서 ROWNUM = 1 사용 시 SELECT 절에서 Top1으로 대체 - ORDER BY 절 사용 시, SELECT 절에 ROWNUMBER() OVER (ORDER BY Field1...FieldN) ..

IT 개발 2014.07.11

[오라클|Oracle] 테이블끼리 조인 걸기 - INNER JOIN, LEFT OUTER JOIN

두 개 이상의 테이블을 하나 이상의 조건을 걸어서 해당된 조건을 가진 값들을 하나의 ROW로 가져오는 것을 JOIN 이라고 합니다. JOIN 은 INNER JOIN 과 OUTER JOIN 두 가지로 구분됩니다. SELECT SYSDATE TO_DAY, SYSDATE - 1 YESTERDAY FROM DUAL; TO_DAY YESTERDAY 2013/10/29 11:28:54 2013/10/28 11:28:54 SELECT SYSDATE TO_DAY, SYSDATE + 1 TOMORROW FROM DUAL; TO_DAY TOMORROW 2013/10/29 11:30:10 2013/10/30 11:30:10 이렇게 두 개의 테이블로 설명을 드리겠습니다. INNER JOIN 이란... 조건이 일치하는 값이 두..

IT 개발 2014.07.04

[오라클|Oracle] String 원하는 만큼 자르기 – SUBSTR

오라클 Oracle SUBSTR 오늘은 String 또는 String으로 반환되는 Column 값을 원하는 길이로 자르는 방법에 대해서 알아보도록 하겠습니다. String 타입의 길이를 자르는 것은 SUBSTR 함수입니다. ※ MS-SQL 에서는 SUBSTRING 함수를 쓰기는 합니다만, 아래의 구문이 전부 먹히는 지는 잘 모르겠습니다. SELECT '나는 대한민국 사람입니다' IAM FROM DUAL; IAM 1 나는 대한민국 사람입니다 이 쿼리를 기본으로 설명 드리겠습니다. 일반적인 SUBSTR 구문입니다. SELECT SUBSTR('나는 대한민국 사람입니다', 1, 7) IAM FROM DUAL; IAM 1 나는 대한민국 SELECT SUBSTR('나는 대한민국 사람입니다', 4, 4) IAM FR..

IT 개발 2014.07.02

[오라클|Oracle] 날짜타입 가지고 놀기 - TO_DATE, TO_CHAR

오라클 Oracle 날짜타입 가지고 놀기 쿼리를 수행하다 보면, 날짜와 관련된 정보를 조회하거나 변경해야 하는 경우가 상당히 많습니다. 오늘은 이런 경우 날짜 타입에 대한 사용법 몇 가지를 알아보겠습니다. 기본적으로 SYSDATE를 가져오는 쿼리 입니다. SELECT SYSDATE FROM DUAL SYSDATE 1 2013/12/24 09:59:57 DATE 타입을 CHAR 타입으로 변경하는 방법입니다. SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') SYS_DATE24 FROM DUAL SYS_DATE24 1 20131224130309 ※ 12시간제로 가져와야 할 경우, 'YYYYMMDDHH12MISS' 로 변경해서 쓰시면 됩니다. SELECT TO_CHAR(SYSDAT..

IT 개발 2014.07.02

[오라클|Oracle] 계층 조회 쿼리 (연결된 값에 순서에 따라 조회하기) - SYS_CONNECT_BY_PATH

오라클 Oracle SYS_CONNECT_BY_PATH 쿼리를 짜다 보면, 어떠한 값에 연결된 순서대로 조회를 하고 싶을 경우가 있습니다. 쉽게 생각하면, 게시판의 댓글의 경우에는 쓴 시간이나, 기타 Key 값을 떠나서 댓글 자신의 원래 글 바로 아래에 오도록 하는 것이 프로그램 하기가 가장 좋은 것이죠. 그래서 오늘은 계층 별 조회 쿼리 – 즉, 연결된 값이 있을 경우 연결된 값 순서에 따라 조회가 되도록 하는 쿼리를 알아보도록 하겠습니다. SELECT 1 SEQ, 0 BEFOR_SEQ FROM DUAL UNION SELECT 2 SEQ, 1 BEFOR_SEQ FROM DUAL UNION SELECT 3 SEQ, 2 BEFOR_SEQ FROM DUAL UNION SELECT 4 SEQ, 0 BEFOR_..

IT 개발 2014.03.21
반응형