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 함..
SQL Server에서 문자열이 날짜 형식인지 체크할 때는 ISDATE 함수를 사용하면 된다. 날짜인 경우 '1'을 반환하고, 날짜가 아닌 경우 '0'을 반환한다. ISDATE 함수는 CASE 연산자나 WHERE 절에서 ISDATE(칼럼) = 1로 사용하면 된다. 허용되는 날짜 형식이 여러 가지 있기 때문에 아래의 예제를 참고하면 된다. 목차 날짜 형식 체크 방법 정확한 날짜 형식 부정확한 날짜 형식 ISDATE 함수 활용 문자열을 날짜로 변환 시 TRY 함수 사용 날짜 형식 체크 방법 SELECT ISDATE('2022-12-13') , ISDATE('2022-12-32') , ISDATE('2022년12월13일') ISDATE 함수는 문자열이 날짜 형식인 경우 '1'을 반환하고, 날짜 형식이 아닐 경..
SQL Server에서 문자열이 숫자 형식인지 체크하기 위해서는 ISNUMERIC 함수를 사용한다. 숫자인 경우 '1'을 반환하고 숫자가 아닌 경우 '0'을 반환한다. ISNUMERIC 함수는 조건절에서 ISNUMERIC(칼럼) = 1로 사용하면 된다. 수치 값에서 사용하는 특수 문자는 숫자로 인식하므로 아래를 예제를 참고하면 된다. 목차 숫자인지 체크 방법 양수, 음수 및 통화 기호가 있을 경우 소수점과 천 단위 구분자가 있을 경우 ISNUMERIC 함수 활용 문자열을 숫자로 변환 시 TRY 함수 사용 숫자인지 체크 방법 SELECT ISNUMERIC('1234') , ISNUMERIC('a123') , ISNUMERIC('abcd') ISNUMERIC 함수는 문자열이 숫자인 경우 '1'을 반환하고 숫..
SQL Server에서는 정수와 정수를 나누면 몫만 반환되고 소수점 이하의 값은 반환되지 않는다. 그리고 나머지를 구하기 위해서는 % (나머지) 연산자를 사용하면 되며 MOD 함수는 없다. 정수(피제수)와 정수(제수)를 나눴을 경우 소수점 이하의 값도 반환받길 원한다면 피제수 또는 제수를 실수로 형 변환을 하면 소수점 이하의 값도 반환받을 수 있다. 몫과 나머지 구하기 (정수) SELECT 10 / 3 AS quotient , 10 % 3 AS remainder 피제수(10)와 제수(3)가 모두 정수인 경우 나누기를 하면 몫만 반환된다. (소수점 이하의 값은 반환 안됨) %(나머지) 연산자를 사용하면 나머지 값만 반환할 수 있다. 정수를 나눌 때 소수점 표시하기 SELECT 10.0 / 3 AS resu..
SQL Server에서 평균값을 구하기 위해서는 AVG 함수를 사용하면 된다. AVG 함수를 사용하지 않고 SUM 함수와 COUNT 함수를 사용해도 동일한 평균값을 구할 수 있다. AVG 함수는 평균을 구할 칼럼의 값이 NULL인 경우 집계 대상에서 제외하는 특성이 있으니 이점을 유의하여 함수를 사용해야 한다. 목차 전체 평균 건수 구하기 그룹별 평균 구하기 (GROUP BY 절) 분석함수를 사용하여 평균 구하기 (OVER 절) 전체 평균 건수 구하기 평균 구하기 SELECT AVG(sal) FROM emp WHERE job = 'SALESMAN' 직업(job)이 "SALESMAN"에 해당하는 직원의 평균 급여를 구한다. ( 평균 급여 = 직원 총 급여 합계 / 직원수 ) 평균 구할 때 NULL이 있을 ..
SQL Server에서 데이터 건수를 집계하기 위해서는 COUNT, COUNT_BIG 함수를 사용하면 된다. 일반적으로는 COUNT 함수를 사용하며, 데이터 건수가 21억 건이 넘어간다면 COUNT_BIG 함수를 사용해야 한다. COUNT 함수 인자에 DISTINCT 연산자를 사용하면 해당 칼럼을 중복 제거하여 건수를 집계할 수 있다. COUNT(칼럼명)으로 사용할 경우 해당 칼럼의 값이 NULL인 경우 건수 집계에서 제외되니 주의해야 한다. 목차 전체 데이터 건수 구하기 그룹별 건수 구하기 (GROUP BY 절) 분석함수를 사용하여 건수 구하기 (OVER 절) 전체 데이터 건수 구하기 건수 구하기 SELECT COUNT(*) FROM emp WHERE job = 'SALESMAN' 직업(job)이 "S..
SQL Server에서 순차적 누적 합계를 구하기 위해서는 SUM 함수와 OVER 절을 사용하면 된다. 누적 합산 기준은 OVER 절 내부의 ORDER BY 절 정렬 기준으로 데이터를 정렬하고 순차적으로 합산을 한다. OVER 절의 내부의 ORDER BY 절 기준으로 데이터가 정렬되어서 조회되므로 WHERE 절 하단에 ORDER BY 절을 추가로 기술할 필요가 없다. 목차 순차적 누적 합계 구하기 그룹별 순차적 누적 합계 구하기 순차적 누적 합계 구하기 SELECT empno , ename , job , sal , SUM(sal) OVER(ORDER BY empno) AS sum_sal FROM emp WHERE job IN ('MANAGER', 'SALESMAN') OVER 절과 SUM 함수를 사용하여..