본문 바로가기

DB22

[ORACLE] 특정 컬럼 기준으로 중복데이터 제거 (ROW_NUMBER() OVER(PARTITION BY _ ORDER BY _)) 1. ROW_NUMBER 함수 : ROW_NUMBER() OVER(PARTITION BY _ ORDER BY _) PATITION 으로 컬럼을 그룹핑하고 정렬하여 순번을 지정해 주는 함수이다 - 사용법 ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼] [ASC/DESC]) 2. 특정 컬럼 기준으로 하나의 행만 추출하기 - 테이블 구성 - 각 구매 내역(BUY_NAME) 별 최근 날짜 내역 조회 쿼리 SELECT BUY_NAME ,BUY_PRICE ,BUY_DATE FROM( -- 1) ROW_NUMBER 사용하여 구매내역별 일자 내림차순으로 순번 지정 SELECT BUY_NAME ,BUY_PRICE ,BUY_DATE ,ROW_NUMBER() OVER.. 2023. 5. 3.
[ORACLE] 주말과 공휴일 제외한 근무일(평일) 날짜 구하기(CONNECT BY LEVEL) 화면단에서 날짜를 선택하여 저장할 때 선택한 날짜가 주말이나 공휴일일 경우 그 다음 근무일(평일)로 돌려줘야하는 상황이 생겼다. 그래서 주말과 공휴일을 제외한 날짜를 구하는 쿼리를 작성해보았다! * 2022년 9월 기준 날짜 입니다. 1. 이번달의 주말을 제외한 평일 날짜 구하기 SELECT TM.DATES -- 날짜 ,TM.DAYS -- 요일 FROM (SELECT TO_CHAR(START_DT + LEVEL - 1, 'YYYY-MM-DD') DATES -- 날짜 ,TO_CHAR (START_DT + LEVEL - 1, 'D') DAYS -- 요일 FROM (SELECT TRUNC(SYSDATE,'MM') START_DT -- 이번달 시작 년월일 ,TO_NUMBER(TO_CHAR(LAST_DAY(SYS.. 2022. 9. 20.
[ORACLE] ORDER BY 와 ROWNUM 함께 사용시 유의사항 ROWNUM으로 채번을 할때 ORDER BY를 사용하는 경우 확인해야 될 사항에 대해 적어본다! 1. 테스트 테이블 데이터 2. ROWNUM 사용 (정렬 X) SELECT ROWNUM ,ID ,NAME FROM SAMPLE 3. ROWNUM 사용 + ORDER BY 사용, NAME 오름차순 정렬 1) SELECT 문에 바로 ROWNUM 과 ODER BY 동시 사용 SELECT ROWNUM ,ID ,NAME FROM SAMPLE ORDER BY NAME ASC 2) ODER BY 로 선 정렬한뒤 SELECT 하면 ROWNUM 사용 SELECT ROWNUM ,A.* FROM ( SELECT ID ,NAME FROM SAMPLE ORDER BY NAME ASC ) A 3-1번 처럼 ROWNUM과 ORDER B.. 2022. 5. 3.
[ORACLE] INSERT시 컬럼 SEQ 증가 (NVL(MAX(SEQ),0) + 1) PK를 잡기위해 자동으로 증가하는 시퀀스를 사용하거나, 전자정부프레임워크의 EgovIdGnrStrategy 을 사용해왔다. 하지만 시퀀스없이 단순하게 숫자만 +1 씩 증가해주는 부분이 필요해 NVL과 MAX를 이용해 자동증가하는 부분에 대해 알아봤다. 우선 NVL 사용법은 아래를 확인하면된다! https://madinthe90.tistory.com/24?category=1047512 [ORACLE] NVL,NVL2 (공백, NULL 값 치환) NULL 값을 특정값으로 출력하고 싶은 경우 사용하는 함수이다! - NVL NVL 은 컬럼값이 NULL 인 경우 지정된 값을 출력, NULL이 아닌 경우 원래 값을 출력하는 함수. NVL(컬럼,'NULL일때 반환값') NVL(컬럼,0) madinthe90.tisto.. 2022. 4. 18.
[ORACLE] WHERE절에 IN 사용 동일한 컬럼을 조회할때 OR을 사용해 복잡하게 사용하지 않고 IN으로 간단하게 표현할 수 있다, - IN 사용법 WHERE COLUMN_NAME IN (A,B,C,D) - TEST 아래와같은 테이블이 있다. IN을 사용해 REG_USER가 'YOU', 'PARK', 'KIM' 인 데이터를 가져온다. SELECT NO ,TITLE ,DESCRIPTION ,REG_USER FROM SAMPLE WHERE REG_USER IN ('YOU', 'PARK', 'KIM') - 결과 2022. 4. 4.
반응형