본문 바로가기

DBMS27

[ORACLE] CASE 함수 / CASE WHEN 오라클에는 if문과 비슷한 기능을 하는 DECODE 함수가 있다. (DECODE : 여러가지 경우에 대해서 선택할 수 있도록 하는 기능) https://sungeune97.tistory.com/75 [Oracle] NVL , NVL2, DECODE 1. NVL함수 : NULL일경우 (Oracle 함수 NVL (value,0) -- value가 null 일경우 0을 반환 / 그렇지 않을경우 value값을 반환 ex ) NVL(컬럼, 'SYSDATE') -> 컬럼 값이 없을 경우 SYSDATE를 반환 2. NVL2 함수 : NULL이 아닐경우 sungeune97.tistory.com DECODE는 조건이 많아지면 가독성이 떨어지기 때문에 조건이 복잡한 경우 CASE WHEN을 사용하는게 좋다. DECODE .. 2021. 6. 4.
[Oracle] 전년도 현재 년도에 복사, INSERT - SELECT문 , SELECT한 결과를 INSERT INSERT INTO TRACK_MAS (CURR_YEAR, BS_POINT, BE_POINT, KS_POINT, KE_POINT, DS_POINT, DE_POINT , DUPL_RATE, UDATE, UUSER)-- 아래 SELECT구문을 INSERT하겠다SELECT '2021' AS CURR_YEAR -- 하드코딩 값 , BS_POINT , BE_POINT , KS_POINT , KE_POINT , DS_POINT , DE_POINT , DUPL_RATE , SYSDATE AS UDATE , 'se.shin' AS UUSER FROM TRACK_MASWHERE CURR_YEAR = '2020' --.. 2021. 5. 27.
[MSSQL] [Oracle] 여러 행의 문자열 합치기 / ORACLE LISTAGG / MSSQL STUFF, XML / CONVERT [목표 ]Oracle, Mssql에서 다중 행 데이터를 한 행에 나열해 출력MSSQL 먼저 설명, ORACLE만 보고 싶다면 아래로 스크롤.. 다중 행의 데이터를 쉼표(,) 와 같은 구분자를 사용해서 한 행에 출력하고 싶을때가 있다. FILE_ID1file1, file2, file3, file4, file5 TYPE처럼 특정 컬럼 기준으로 구분할 수도 있다. TYPEFILE_ID1Afile1, file22Bfile33Cfile4, file5 실제 실무에서 사용하게 됐던 경우는,1개의 게시글에 멀티 file이 저장되어 있을 때 게시글 별 첨부파일 아이디들을 불러와야 했을때다.이와 같은 경우 JAVA에서 이어붙여도 되긴 하지만 쿼리로 한번에 해결이 가능하다. (각 행(raw)으로 구성된 file_id .. 2021. 3. 19.
[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT 중복 데이터 건수 찾기 아래 쿼리를 통해 두가지를 할 수 있다.1. 중복되고 있는 데이터 조회2. 중복된 데이터의 개수 조회(* 활용시 부가적 기능 : 중복 제거) 중복체크를 원하는 컬럼을 그룹핑해서, 그룹핑 조건(HAVING 절) 에 COUNT' 로 '1건 이상(초과)'을 조회하면 중복 되고 있는 데이터를 알 수 있다. 해당 데이터가 몇건 중복되는지 확인하려면 COUNT(COLUM_NAME) 로 찾을 수 있다.  Tip* HAVING 절에 그룹핑한 조건의 raw가 1건 초과인 경우를 조회하고 있기 때문에, 조회된 결과는 모두 중복데이터이며 COUNT를 통해 몇건의 중복이 발생하는지 확인할 수 있다.SELECT 컬럼1, 컬럼2, ... , 컬럼n , COUNT(컬럼1) -- 중복 갯수 FROM .. 2021. 3. 5.
[Oracle] 조회한 가상 컬럼의 연산 조회한 컬럼끼리 연산한 결과를 가상 컬럼으로 사용할 수 있다. ( = 테이블에 저장되는 것이 아니라는 의미) SELECT A.POINT + B.POINT AS ALLPOINT FROM STUD_TABLE; 컬럼끼리의 연산은 WHERE, ORDER BY 절에서도 가능하다. 단! SQL은 내부적으로 WHERE 구문을 먼저 처리하고 SELECT 하기 때문에 SELECT 절에서 지정한 Alias를 WHERE절에서는 사용할 수 없다. 해결 => SELECT절이 아닌 WHERE 절에서 컬럼끼리 연산해서 사용하면 된다. 에러 구문 SELECT A.POINT + B.POINT AS ALLPOINT FROM STUD_TABLE WHERE ALLPOINT != 1 ; -- ORA-00904: "ALLPOINT": 부적합한.. 2021. 2. 10.
반응형