본문 바로가기
IT

db 쿼리문

by 김대근'IT공부 2019. 12. 19.

모든 테이블에서 PK가 없는 테이블 찾기

 

select class_name
  from db_class
 where class_name not in (select class_name from db_index where is_primary_key = 'YES')
       and class_name not like 'db%'
       and class_name not like '_db%'
       and class_name not in ( select vclass_name from db_vclass);

 

입력된 년월 또는 두개의 날짜를 이용해 달력 및 주차 구하기

 

-- 입력된 월 기준

SELECT

        ADDDATE(A.SETMONTH, LEVEL -1) AS DT,

        TO_CHAR(ADDDATE(A.SETMONTH, LEVEL -1), 'DAY') AS SW,

        CONCAT(DENSE_RANK() OVER(ORDER BY TRUNC(ADDDATE(A.SETMONTH, LEVEL -1), 'DAY')), ' 주차') AS MBWK

FROM (

        SELECT

                TO_DATE('201601','YYYYMM') AS SETMONTH

) A

CONNECT BY LEVEL <= EXTRACT(DAY FROM LAST_DAY(A.SETMONTH))

 

-- 입력된 두개의 날짜 기준

SELECT

        ADDDATE(A.ST_DAY, LEVEL - 1) AS DT,

        TO_CHAR(ADDDATE(A.ST_DAY, LEVEL - 1), 'DAY') AS SW,

        CONCAT(TO_CHAR(ADDDATE(A.ST_DAY, LEVEL - 1), 'YYYY'), ' ', TO_CHAR(ADDDATE(A.ST_DAY, LEVEL - 1), 'MM'), ' ', DENSE_RANK() OVER(PARTITION BY MONTH(ADDDATE(A.ST_DAY, LEVEL - 1)) ORDER BY TRUNC(ADDDATE(A.ST_DAY, LEVEL - 1), 'DAY')), ' 주차') AS MBWK

FROM (

        SELECT

                TO_DATE('2016-08-01') AS ST_DAY,

                TO_DATE('2016-08-09') AS ED_DAY

) A

CONNECT BY

        LEVEL <= DATEDIFF(ED_DAY, ST_DAY)

 

참고 - http://www.cubrid.com/

반응형