본문 바로가기

SQL5

[오라클] 입력 받은 날짜 입력 받은 날짜가 주말인지 평일인지 어떻게 알 수 있을까?입력 받은 날짜가 포함된 주의 월요일 날짜와 일요일 날짜는 어떻게 구 할 수 있을까? 입력 받은 날짜가 주말 확인하기SELECT CASE WHEN TO_CHAR(TO_DATE(I_STA_YMD, 'YYYYMMDD'), 'D') IN ('1','7') THEN 'Y' WHEN EXISTS(SELECT 1 FROM tbl T1 WHERE T1.C_CD = :I_C_CD AND T1.HOLI_CD = :I_STA_YMD) THEN 'Y' ELSE 'N' END FROM DUAL; 입력 받은 날짜가 들어간 주의 월요일 일요일 날짜 구하기SELECT :YMD , TO_CHAR(TRUNC(TO_DATE(:YMD.. 2025. 4. 1.
[오라클] 특정 날짜가 들어 있는 주의 월요일 날짜와 일요일 날짜 구하기 오늘 조금 특별한 상황이 발생 하였다.어떤 날짜를 지정하면, 지정한 날짜가 포함된 주의 월요일 날짜와 일요일 날짜를 확인해야 하는 일이 생겼다.다행히 오라클에서 쉬운 방식으로 해당 날짜를 구할 수 있어서 방법을 정리해 본다. SELECT :YMD , TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW'), 'YYYYMMDD') AS MONDAY_YMD , TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW') +6, 'YYYYMMDD') AS MONDAY_YMD FROM DUAL;:YMD는 입력 받은 특정 날짜이다.이 날짜에가 들어 있는 주의 월요일과 일요일 날짜를 구하려고 하는 것이다.IW는 ISO Week의 약자로 월요일의 날짜.. 2025. 3. 26.
[DB] WITH AS 문 사용하기 쿼리를 작성할때 과도한 서브 쿼리는 메인 쿼리의 더욱 복작하게 만든다. 이럴때 WITH AS 구문을 사용하면 그나마 복잡한 부분의 쿼리를 분리해 낼 수 있을 뿐만 아니라 반복적으로 쓰이는 서브 쿼리라면 성능의 향상을 덤으로 얻을 수 있다. 방법은 간단하다. 메인 쿼리 위에 WITH AS 구문을 사용해 서브 쿼리를 옮겨 놓는 것이다. WITH 이름 AS ( SELECT ... FROM ... WHERE ... ) SELECT .... FROM 이름 WHERE .... 서브쿼리가 여러개라 하더라도 걱정할 필요 없다. 각 서브쿼리를 , 로 구분하여 추가해 주면 된다. WITH 이름1 AS ( SELECT 문 ), 이름2 AS ( SELECT 문 ) SELECT ... FROM 이름1 LEFT OUTER JOI.. 2021. 7. 28.
[도서] 김상형의 SQL 정복 김상형의 SQL 정복 어떤 언어나 기술을 공부 할때 난 여러 가지 책과 포스팅을 모두 찾아 서로 비교해 가면서 공부를 한다. 그리고 시간이 지나면 똑같은 방법으로 이전에 공부했던 책이 아닌 다른 책으로 비슷하게 또 다시 흝어 본다. 이번에 DB에 대해 다시 공부할 필요를 느끼고 있었는데 때마침 한빛미디어에서 '김상형의 SQL정복'을 리뷰할 책으로 보내 주었다. 정말 타이밍도 기가 막히다는 생각이 든다. 그리고 운이 매우 좋았다. 이 책의 주 타겟은 아마도 개발 공부를 막 시작했거나 좀더 나은 개발자가 되기 위해 더 많이 공부를 하고 싶어 하는 초보 개발자들일 것이다. 그렇다면 매우 적절한 책을 선택하지 않았나 싶다. 책의 표지에도 써있는 것처럼 이 책에서는 책을 쓰는 시점을 기준으로 3가지 메이저 DB를.. 2021. 6. 20.
[SQL] 각 데이터베이스 별 like 검색 시 문자열 조합 방법 mysql(mariadb)나 oracle 등 각 데이터베이스 제품 별로 like 검색 시 문자열을 조합하는 방법에 약간의 차이가 있다. mysql(mariadb) code like CONCAT('문자열','문자열',....) ex ) code like CONCAT(#{code}, '%') code like CONCAT('%', #{code}, '%') oracle, db2 code like '문자열' || '문자열'.... ex) code like #{code} || '%' code like '%' || #{code} || '%' mssql code like '문자열' + '문자열'... ex) code like #{code} + '%' code like '%' + #{code} + '%' 2020. 12. 16.