반응형 oracle16 ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) 오라클에서 조회한 데이터의 이전, 다음 행에 접근해야 하는 경우가 있습니다. 뭔가 순서가 있는 데이터에서 사용을 하는데요, 이번 포스팅에서는 이전, 다음 행에 접근하는 LAG, LEAD 함수의 사용법을 알아보겠습니다. LAG : 이전 행의 값에 접근 LEAD : 다음 행의 값에 접근 예를들어 학생별로 수학 점수가 있는 데이터가 있을 때, 점수로 정렬 한 후 다음 학생과의 점수차를 구하고 싶다고 한다면 아래와 같이 작성할 수 있습니다. WITH STUDENT AS ( SELECT '이루리' AS STDT_NM, '수학' AS SBJT, 80 AS SCORE FROM DUAL UNION ALL SELECT '이건' AS STDT_NM.. Database/SQL 2021. 10. 7. ORALCE 에서 MYSQL, MARIADB 변경 시 확인 함수 ORALCE 에서 MYSQL, MARIADB 변경 시 확인 함수 - CONNECT BY LEVEL Link : aljjabaegi.tistory.com/549 MySql, MariaDB에서 connect by level 사용방법 MySql, MariaDB에서 connect by level 사용방법 오랜만에 포스팅에서는 MySql, MariaDB에서 connect by level 사용방법을 알아보겠습니다. connect by level 은 증가하거나 감소하는 데이터를 동적으로 생성.. aljjabaegi.tistory.com - TO_NUMBER -- ORACLE TO_NUMBER('1') -- MYSQL, MARIADB CASE('1' AS INTEGER) - DECODE --ORACLE DECODE(컬.. 알짜정보/IT정보 2021. 2. 24. MySql, MariaDB에서 connect by level 사용방법 MySql, MariaDB에서 connect by level 사용방법 오랜만에 포스팅에서는 MySql, MariaDB에서 connect by level 사용방법을 알아보겠습니다. connect by level 은 증가하거나 감소하는 데이터를 동적으로 생성할때 사용하는데요, 사용방법은 아래와 같습니다. SELECT LEVEL FROM DUAL CONNECT BY LEVEL Database/SQL 2021. 2. 23. springboot 2.x gradle 웹프로젝트 db mybatis 연동 설정 데이터베이스 연동 springboot 2.x gradle 웹프로젝트 db mybatis 연동 설정 데이터베이스 연동 웹프로젝트 기본 설정은 아래의 Link 를 참고하세요. Link : springboot 2.x gradle jsp 연동 설정 웹프로젝트 생성 mybatis를 연동하기 위한 의존성 주입을 해줍니다. /*mybatis*/ compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.1.1' compile('org.springframework.boot:spring-boot-starter-jdbc') refresh gradle 후 mybatis config 파일을 생성해줍니다. import javax.sql.Dat.. Programing/Springboot 2019. 11. 19. ORACLE 테이블 데이터 비교, 교집합 차집합 데이터 추출 ORACLE 테이블 데이터 비교, 교집합 차집합 이번 포스팅은 ORACLE 테이블 데이터 비교가 주제입니다.! 같은 포멧의 두 테이블을 비교하거나, SELECT 한 두 SQL문의 데이터를 비교할때 사용됩니다. 같은 데이터 만 추출하기 (교집합) INTERSECT SELECT * FROM TABLE_A INTERSECT SELECT * FROM TABLE_B 두 테이블 SQL문 사이에 INTERSECT 가 들어가게 됩니다. 두 테이블의 컬럼이 같고, 같은 데이터 포멧이어야 비교가 가능합니다. 위 테이블의 결과는 처음 테이블(TABLE_A)의 일치하는 데이터 ROW 가 출력이 됩니다. 아래의 예를 보시죠. SELECT * FROM ( SELECT '사과' , '배' , '오랜지' FROM SYS.DUAL U.. Database/SQL 2019. 9. 24. Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 카테시안 조인과 CASE문을 활용하여 행열을 변환하는 방법을 알아보도록 하겠습니다. 카테시안 조인과 CASE문에 대해서는 아래의 Link를 참고하세요. Link : Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 이번 포스팅에서는 원하는 만큼 데이터를 복사해 SELECT 하는 방법에 대해서 포스팅 하겠습니다. 데이터의 복제는 카테시안 조인을 사용하여 간단히 할 수 있습니.. aljjabaegi.tistory.com Link : Oracle 오라클 CASE문 사용법 CASE WHEN THEN END Oracle 오라클 CASE문 사.. Database/SQL 2019. 8. 30. Oracle mybatis foreach merge 방법 collection merge문 Oracle mybatis foreach merge 방법 collection merge문 Oracle에서 키값이 같을 경우 update, 다를 경우 insert 를 할때 사용하는 것이 merge문 입니다. merge문에 대해서는 아래의 Link를 참고하세요. Link : Mybatis insert, update null 처리, 부적합한 열 유형 처리방법 Mybatis insert, update null 처리, 부적합한 열 유형 처리방법, Oracle Merge Mybatis insert, update null 처리, 부적합한 열 유형 처리방법 Mybatis를 활용해 insert, update 시 변수의 값이 없을 시 부적합한 열 유형 (해당 변수=null) 에러가 발생합니다. 이를 처리하기 위해서는 if.. Programing/Spring 2019. 8. 13. Oralce 오라클 UNIX Timestamp 변환 timestamp to date String Oralce 오라클 UNIX Timestamp 변환 timestamp to date String Unix timestamp 를 Date String으로 변환하는 방법 TO_CHAR(변환컬럼명 / (60 * 60 * 24) + TO_DATE('19700101090000', 'YYYYMMDDHH24MISS'), 'YYYYMMDDHH24MISS') Ex) SELECT TIMESTAMP_ACCI , TO_CHAR(TIMESTAMP_ACCI / (60 * 60 * 24) + TO_DATE('19700101090000', 'YYYYMMDDHH24MISS'), 'YYYYMMDDHH24MISS') AS DATE_ACCI FROM ACCI_TABLE Result) Link : Java 자바 UNIX Timestamp 변.. Database/SQL 2019. 8. 1. Oracle IN, NOT IN 문 알짜만 빼먹기 Oracle IN, NOT IN 문 알짜만 빼먹기 값이 포함되는 혹은 포함되지 않는 데이터를 추출하고 싶을 때 사용하는 것이 IN, NOT IN 문입니다. 용법을 보도록 하죠. [용법] IN 문 SELECT * FROM TABLE WHERE COLUMN IN ('A' , 'B') [IN문 풀이] SELECT * FROM TABLE WHERE COLUMN = 'A' OR COLUMN = 'B' [용법] NOT IN 문 SELECT * FROM TABLE WHERE COLUMN NOT IN ('A' , 'B') [NOT IN문 풀이] SELECT * FROM TABLE WHERE COLUMN 'A' AND COLUMN 'B' 위의 쿼리를 보면 IN문은 'A'와 'B' 가 포함되는 데이터만 추출되고, NOT .. Database/SQL 2019. 7. 17. Spring Boot Multiple Database Configuration + Mybatis +HikariCP, MySQL, Oracle, Using Mapper annotation Spring Boot Multiple Database Configuration + Mybatis +HikariCP, MySQL, Oracle, Using Mapper Annotation 스프링 부트에서 멀티 Database 연결 설정 Mybatis + HikariCp, MySql, Oracle, 어노테이션 방식 Spring Boot version : 2.1.1 Gradle spring boot 2.0.0 이상부터는 DBCP는 HikariCP가 기본입니다. 스프링 부트, Mybatis 환경에서 Oracle과 Mysql로 멀티 데이터베이스 연동하는 방법을 알아보겠습니다. 우선 필요한 라이브러리의 의존성 주입을 합니다. dependencies { compile('org.springframework.boot:s.. Programing/JAVA 2019. 4. 2. ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기 ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기 11g 에서 추가. 10g 이하는 WM_CONCAT 함수 사용 (WM_CONCAT은 페이지 하단 Link 참고) 오라클에서 여러개의 열로 된 값을 한 행의 값으로 가져와야 할 때 LISTAGG 함수를 사용한다. - 사용방법 SELECT LISTAGG(가져올컬럼, 구분자) WITHIN GROUP (ORDER BY 순서컬럼) FROM TABLE_NM 아래의 예를 보자 예) SELECT DRIVER_NM FROM DRIVER_INFO; DRIVER_INFO 테이블에서 DRIVER_NM 컬럼을 가져왔다. 위와 같은 여러 열의 값을 LISTAGG를 사용하여 하나의 열로 가져와 보자. SELECT LISTAGG(DRIVER_NM, ',') WITHIN .. Database/SQL 2015. 8. 19. ORACLE MERGE 조건에 따라 INSERT, UPDATE ORACLE MERGE 조건에 따라 INSERT, UPDATE 특정 조건의 데이터에 따라 ROW를 INSERT하거나 UPDATE 해야할 때 MERGE를 사용합니다. 예를 들어 테이블에 어떤 값이 존재할 경우에는 UPDATE를 존재하지 않을 경우에는 INSERT를 해야 된다고 할 때 MERGE를 사용하지 않는다면 값을 확인하는 쿼리를 따로 사용했어야 했죠. 하지만 MERGE를 사용하면 하나의 쿼리로 위의 데이터 처리가 가능합니다. - 사용방법 MERGE INTO TABLE_NAME USING TABLE/VIEW/SUBQUERY/DUAL ON CONDITION WHEN MATCHED THEN UPDATE문 WHEN NOT MATCHED THEN INSERT문 예) MERGE INTO RECORD_INFO U.. Database/SQL 2015. 8. 19. 오라클 두 테이블의 컬럼에서 같은 값 확인 ORACLE DECODE 활용 오라클 두 테이블의 컬럼에서 같은 값 확인 ORACLE DECODE 활용 두 테이블의 컬럼에서 같은 값이 있는지 확인하기 위해서는 OUTER조인과 DECODE를 활용한다. 예를 들어 A테이블의 B컬럼과 C테이블의 D컬럼에서 같은 값이 있는지 확인하고 싶다고 하자. TABLE A = B{ 1, 2, 4, 6, 7 } TABLE C = D{ 1, 3, 6, 7 } 테이블이 위와 같다면 1, 6, 7 값이 중복되는 것을 확인할 수 있다. 그럼 쿼리를 사용해 값을 확인해보자. SELECT A1.B , C1.D FROM A A1 LEFT JOIN C C1 ON(C1.D = A1.B) 위의 쿼리의 결과는 아래와 같다. B D ----------------- 1 1 2 (NULL) 4 (NULL) 6 6 7 7 LE.. Database/SQL 2015. 8. 5. Oracle Subquery 서브쿼리를 활용한 반복문 Oracle Subquery 서브쿼리를 활용한 반복문 * 서브쿼리 SUBQUERY 를 활용한 반복문[PL/SQL] 일반적인 오라클의 FOR 문 FOR 변수 IN 시작값..끝값 LOOP 반복될 이벤트; END LOOP; 서브쿼리를 활용한 FOR 문 FOR DATA_ROW IN ( SELECT문 ) LOOP 반복될 이벤트; END LOOP; 위의 두 FOR문의 차이를 보면 변수가 들어갈 자리에 DATA_ROW가, 시작값과 끝값이 들어갈 자리에 서브쿼리가 들어간 것을 볼 수 있다. 이렇게 되면 서브쿼리를 실행했을 때 조회된 데이터 행 만큼 반복이 되며 FOR문 안에서 DATA_ROW.컬럼명을 사용하여 각 행의 데이터를 사용할 수 있다. *예제 테이블1의 A컬럼을 테이블2의 B컬럼에 INSERT해야 할 경우. .. Database/SQL 2013. 5. 28. Oracle OUTER JOIN (RIGHT JOIN, LEFT JOIN) 비교 아우터조인 Oracle OUTER JOIN (RIGHT JOIN, LEFT JOIN) 비교 아우터조인 [LEFT JOIN사용법] SELECT * FROM 테이블1 T1 LEFT JOIN 테이블2 T2 ON (T2.테이블을 연결할 컬럼 = T1.테이블을 연결할 컬럼 ); [예제] 사원정보가 있는 AMT_MST_TEST 와 부서정보가 있는 DEPT_MST_TEST 테이블이 있습니다. AMT_MST_TEST 테이블에 DEPT_CD가 같은 조건으로 DEPT_MST_TEST와 LEFT, RIGHT JOIN을 걸어보겠습니다. SELECT * FROM AMT_MST_TEST T1 LEFT JOIN DEPT_MST_TEST T2 ON (T2.DEPT_CD = T1.DEPT_CD) AMT_MST_TEST(사원) 테이블을 기준으로 .. Database/SQL 2013. 5. 21. 이전 1 2 다음 💲 추천 글 반응형