분류 전체보기(223)
-
오라클 -> MySQL 쿼리 변환하기
오라클 쿼리 : WITH DIV_SCOPE AS ( SELECT #{agoYr} || '1201' AS FRST_DT, TO_CHAR(LAST_DAY(TO_DATE(#{basYr} || '02', 'YYYYMM)), 'YYYYMMDD') AS LAST_DT, 1 AS DIV_NO FROM DUAL UNION SELECT #{basYr} || '0301' AS FRST_DT, TO_CHAR(LAST_DAY(TO_DATE(#{basYr} || '05', 'YYYYMM)), 'YYYYMMDD') AS LAST_DT, 2 AS DIV_NO FROM DUAL UNION SELECT #{basYr} || '0601' AS FRST_DT, TO_CHAR(LAST_DAY(TO_DATE(#{basYr} || '08', ..
2023.12.02 -
현재 일자가 속한 분기 구하는 쿼리
2022년 2023년 12월 1 월 2 월 3 월 4 월 5 월 6 월 7 월 8 월 9 월 10 월 11 월 1분기 2분기 3분기 4분기 지난해 12월을 시작으로 3개월씩 분기를 나누었을 때 특정일자를 기준으로 현재 출력할 수 있는 분기수가 몇 개인지 구하려면 어떻게 해야 할까? 가령 현재 일자가 2023년 11월 29일일 때의 분기를 구하면 4분기가 아니고 3분기가 되어야 한다. 왜냐하면 11월 말일이 30일인데 아직 말일이 안지났기 때문에 분기별 데이터가 계속 쌓일 수 있어서 바로 전 분기인 3분기가 되어야 한다. /* 날짜 판별을 위한 분기 기준 데이터 생성 - agoYr : 지난 해 - basYr : 기준년도 */ SELECT #{agoYr} || '1201' AS FRST_DT, TO_CHAR..
2023.12.02 -
SQLite3 - DB 생성하기
쿼리연습하는데 기왕이면 Oracle 이면 좋겠으나 Docker 로 배포되는 오라클도 있고 MySQL, Maria DB, ... 다양한 오픈소스 DB 가 존재하는데 설치하기도 귀찮고 SQLite 가 최소한의 기능을 지원하니까 만사가 귀찮은 사람에겐 SQLite 를 쓰는 것도 대안이 되리라! 이야~ 단순하다. $ sqlite3 데이터베이스명 DBeaver 에서 조인연습하려고 구한 Chinook.db 가 있지만 Employee 테이블명이 겹쳐서 새 DB는 어떻게 만들어야 하는지 궁금했는데 커맨드 한 개로 바로 해결된다. 쉬워서 좋네. 나중에 안드로이드 앱 개발할 때 써먹으면 되니까. 참고한 사이트 : SQLite In 5 Minutes Or Less Below is a simple TCL program tha..
2023.11.21 -
[SQL] - ORDER BY
ORDER BY 로 쿼리결과를 정렬하려고 할 때, 컬럼값에 따라 우선순위를 정해야 할 경우, CASE 문을 쓰면 된다. SELECT SUBJECT, ... FROM ( SELECT '컴공' AS SUBJECT, ... union SELECT '소프트웨어공' AS SUBJECT, ... union SELECT '전자공' AS SUBJECT, ... ) A ORDER BY CASE WHEN A.SUBJECT = '컴공' THEN 1 WHEN A.SUBJECT = '소프트웨어공' THEN 2 WHEN A.SUBJECT = '전자공' THEN 3 END ASC
2023.11.20 -
[JQuery] selector 한꺼번에 지정하기
여러 개의 HTML 요소에 대해 동일한 이벤트를 처리하려고 할 때 이렇게 쓰면 된다. $('selector1, selecotr2, selectorN').on('이벤트', function(arg){}); --- $('#id-one').on('이벤트', function(arg){}); $('#id-two').on('이벤트', function(arg){}); $('#id-three').on('이벤트', function(arg){}); --- // 소스 코드량도 줄이고 $('#id-one, #id-two, #id-three').on('이벤트', function(arg){});
2023.11.20 -
JS 에서 소수점 반올림 처리하기
SQL 에서는 ROUND(소수값, 유지할 자릿수) 만으로 소숫점 몇 째자리까지 유지할 수 있다. [ SQLITE 기준 ] SELECT ROUND(12345.67890) AS ROUNDING; -> 12345 SELECT ROUND(12345.67890, 2) AS SOSU; -> 12345.68 하지만 자바스크립트에서는 ROUND 함수로 소수점 자리유지를 할 수 없다. 항상 반올림된 정수로 된 결과로 나온다. Math.round(12345.67890) -> 12346 Math.round(12345.67890, 2) -> 12346 소수점 자리를 유지하려면 Math.round(소수값 * 10^N) / 10^N 으로 처리하면 된다. 소수점 둘째 자리이면 10의 제곱인 100 을 쓰면 된다. Math.roun..
2023.11.20