오라클에서 하루 전 날짜, 내일 날짜를 구하기 위해서는 날짜에서 원하는 일수만큼 정수를 빼거나 더하면 된다. 다른 데이터베이스에서는 DATEADD 함수를 사용하기도 하지만 오라클에는 별도의 함수는 없다. SYSDATE에서 -2, -1, +1, +2 등으로 연산을 하면 오늘의 기준으로 원하는 날짜를 쉽게 구할 수 있다. 하루 전 날짜 구하는 방법 SELECT TRUNC(SYSDATE) - 1 --어제(하루전) , TRUNC(SYSDATE) --오늘 , TRUNC(SYSDATE) + 1 --내일 FROM dual SYSDATE 기준으로 어제 날짜, 내일 날짜를 구할 수 있다. 날짜가 문자열인 경우 날짜 형식으로 변환 후 연산 SELECT TO_DATE('20230226', 'YYYYMMDD') , TO_DA..
오라클에서 수치값의 양수, 음수 부호를 판단하기 위해서는 SIGN 함수를 사용한다. 양수면 1, 음수면 -1, 0이면 0을 반환한다. 숫자의 플러스, 마이너스 부호를 판단하여 WHERE 절에서 조건절에 사용할 수 있으며 CASE, DECODE 함수를 사용할 때도 조건으로 사용할 수 있다. SIGN 함수 기본 사용법 SELECT SIGN(10) --양수(1) , SIGN(-10) --음수(-1) FROM dual 함수 사용법: SIGN( 숫자 ) 양수면 1, 음수면 -1을 반환한다. SELECT SIGN(10) , SIGN(-10) , SIGN(0) , SIGN(NULL) FROM dual 0이면 0, NULL이면 NULL을 반환한다. 입력된 값이 문자열이면 오류가 발생하므로 주의해야 한다. SIGN 함수..
오라클에서 그룹별 최댓값을 구하기 위해서는 집계함수(GROUP BY 절)를 사용하는 방법과, 분석함수(OVER 절)를 사용하는 방법을 주로 사용한다. 조회하는 상황에 따라서 필요한 형태의 방법을 사용하면 된다. GROUP BY 절은 기본적인 문법이라서 많이 알고 있지만 OVER 절은 고급 문법이기 때문에 조금 이해하는 시간이 필요할 수 있다. 목차 집계함수를 사용하여 최댓값 구하기 (GROUP BY 절) 분석함수를 사용하여 최댓값 구하기 (OVER 절) 집계함수를 사용하여 최댓값 구하기 (GROUP BY 절) SELECT job , MAX(sal) AS max_sal FROM emp WHERE job IN ('MANAGER', 'SALESMAN', 'CLERK') GROUP BY job GROUP BY ..
오라클에서 행을 열로 바꾸기 위해서는 다양한 방법이 있다. 그룹별로 집계된 데이터의 행을 열로 바꾸기 위해서는 PIVOT, DECODE 또는 CASE를 사용하며, 여러 행의 문자열을 합쳐서 하나의 열로 바꾸기 위해서는 LISTAGG 함수를 사용하면 된다. 아래의 예제를 참고하면 쉽게 이해할 수 있을 것이다. 목차 PIVOT 함수를 사용하여 행을 열로 변환 DECODE, CASE 표현식을 사용하여 행을 열로 변환 LISTAGG 함수를 사용하여 행을 열로 변환 PIVOT 함수를 사용하여 행을 열로 변환 SELECT deptno , p_president , p_analyst , p_manager , p_salesman , p_clerk FROM ( SELECT deptno , job , sal FROM emp..
오라클에서 나눈 값의 몫과 나머지를 구하기 위해서는 TRUNC 함수와 MOD 함수를 사용하면 된다. TRUNC 함수를 사용하여 나눈 값의 소수점 이하의 값을 절사하고 몫을 구할 수 있으며, MOD 함수를 사용하여 나머지 값을 구할 수 있다. FLOOR 함수를 사용하여 몫을 구할 수 있지만 나눈 값이 음수인 경우 의도하지 값이 반환될 수 있으니 주의해야 한다. 목차 몫, 나머지 구하는 방법 (MOD, TRUNC) 몫 구할 때 주의할 점 (TRUNC, FLOOR) 몫, 나머지 구하는 방법 (MOD, TRUNC) SELECT 10 / 3 , TRUNC(10 / 3) , MOD(10, 3) FROM dual 몫 : TRUNC("나눈 값") 나머지: MOD("피제수", "제수") 나눈 값에서 TRUNC 함수를 사..
오라클에서 문자열의 공백을 제거하기 위해서는 TRIM 함수를 사용한다. TRIM 함수 외에도 LTRIM 함수를 사용하여 왼쪽 공백을 제거할 수 있고, RTRIM 함수를 사용하여 오른쪽 공백을 제거할 수 있다. 문자열에 포함된 모든 공백을 제거하기 위해서는 REPLACE 함수를 사용하면 된다. 목차 공백 제거 방법 (TRIM, LTRIM, RTRIM) 모든 공백 제거 방법 (REPLACE) 왼쪽, 오른쪽 특정 문자 제거 방법 (LTRIM, RTRIM) 공백 제거 방법 (TRIM, LTRIM, RTRIM) SELECT TRIM(' Oracle Database ') AS "TRIM" , LTRIM(' Oracle Database ') AS "LTRIM" , RTRIM(' Oracle Database ') AS..
SQL Server에서 소수점 이하의 값을 절사(버림)를 하기 위해서는 FLOOR 함수를 사용하면 된다. 다른 시스템의 TRUNC, FIX 함수와 비슷한 기능을 수행한다고 생각하면 된다. FLOOR 함수는 입력된 값보다 작거나 큰 최대 정수를 반환하는 함수이며, 이 기능을 활용하여 소수점을 절사 하기 때문에 정확히 이해하고 사용하는 것이 좋다. 목차 소수점 절사, 버림 방법 (FLOOR 함수) 소수점을 절사 하는 다양한 방법 FLOOR 함수를 사용 시 주의사항 소수점 절사, 버림 방법 (FLOOR 함수) SELECT FLOOR(123.567) FLOOR 함수를 사용하여 소수점 이하의 값을 절사(버림)를 할 수 있다. FLOOR 함수는 입력된 값보다 작거나 같은 최대 정수를 반환한다. 입력된 값이 양수인 ..
SQL Server에서 소수점을 반올림하기 위해서는 ROUND 함수를 사용하며, 소수점을 올림 하기 위해서는 CEILING 함수를 사용한다. ROUND 함수를 사용할 때 주의할 점은 소수점 자릿수 항목을 생략하고 사용하면 오류가 발생하기 때문에 소수점 모두 반올림할 경우 소수점 자릿수에 '0'을 입력해야 오류가 발생하지 않는다. 목차 소수점 반올림 방법 (ROUND 함수) 소수점 올림 방법 (CEILING 함수) 소수점 반올림 방법 (ROUND 함수) SELECT ROUND(123.567, 0) , ROUND(123.567, 1) , ROUND(123.567, 2) ROUND('수치값', '반올림 자릿수') 소수점 이하에서 해당 자릿수 까지 5 이상의 값을 반올림한다. ROUND 함수를 사용할 때 ROU..
SQL Server에서 문자열을 치환하기 위해서는 REPLACE 함수를 자주 사용한다. 그러나 문자열의 특정 영역을 치환 또는 마스킹 킹 처리를 할 때는 STUFF 함수를 사용하면 조금 더 편리하게 할 수 있다. 또한 여러 개의 문자를 다중치환할 때는 TRANSLATE 함수를 사용하면 쿼리문을 조금 더 짧고 명료하게 작성할 수 있다. 목차 문자열 치환 방법 3가지 REPLACE 함수를 사용하여 문자열 치환 방법 STUFF 함수를 사용하여 문자열 치환 방법 TRANSLATE 함수를 사용하여 문자열 치환 방법 문자열 치환 방법 3가지 SELECT REPlACE('MSSQL', 'S', 'X') , STUFF('MSSQL', 2, 2, 'XX') , TRANSLATE('MSSQL', 'S', 'X') 위의 예..
SQL Server에서 문자열을 대문자 또는 소문자로 변환하기 위해서는 UPPER, LOWER 함수를 사용한다. UPPER(문자열) 함수를 사용하면 대문자로 변환되고, LOWER(문자열) 함수를 사용하면 소문자로 변환된다. SQL Server에서는 첫 문자만 대문자로 변환하는 INITCAP 함수는 지원하지 않는다. SSMS 툴의 대문자, 소문자 변환 단축키는 아래를 참고하면 된다. 목차 대문자, 소문자 변환 방법 (단축키 포함) 특정 칼럼의 값을 대문자, 소문자로 변환 대문자, 소문자 구분 없이 LIKE 검색 방법 대문자, 소문자 변환 방법 SELECT UPPER('SQL Server 2022') , LOWER('SQL Server 2022') UPPER 함수를 사용하면 대문자로 변환되고, LOWER 함..