개발자

ALL

MSSQL RANK와 DENSE_RANK 랭크 함수 차이 예제

SQL Server에서 순위를 설정하는 함수로 RANK가 있습니다. 비슷한 함수로 DENSE_RANK도 있습니다. 두 함수의 사용법은 비슷하지만 결과가 조금 다른 경우가 있습니다. 예제를 통해서 결과가 어떻게 다른지 확인하겠습니다. RANK와 DENSE_RANK 차이 두 함수의 차이를 확인하기 전에 테스트 데이터를 만들겠습니다. 데이터는 앞서 설명한RANK 함수에서 사용한 데이터를 가지고 하겠습니다. 테이블 생성 및 데이터 등록은 RANK 함수의 데이터 등록을 참조해주세요. RANK 사용 예제 -- 학생 성적을 기준으로 순위 취득 ...
ALL

MSSQL ROW_NUMBER로 성적 순위 설정 방법 예제

데이터에 번호를 설정하는 방법으로 ROW_NUMBER를 많이 사용합니다. 순위를 설정하는 방법으로 RANK 함수를 사용할 수도 있지만, ROW_NUMBER를 사용해 순위를 설정할 수도 있습니다. 성적 순서가 높은 순서대로 ROW_NUMBER를 사용해 순위를 설정하는 방법을 보겠습니다. 먼저 테스트 데이블과 데이터를 만들겠습니다. 테스트 데이터 만들기 랭크 예제는 성적 테이블을 만들어 사용하도록 하겠습니다. 데이블 생성 -- 성적 테이블 작성 CREATE TABLE STUDENT_GRADE ( STUDENT_ID int NOT NUL...
ALL

MSSQL 성적 순위 설정 RANK 사용 방법 예제

SQL Server에서 RANK 함수를 사용하는 방법을 알아보겠습니다. RANK 함수를 사용해 상위 몇 위까지만 출력하는 예제도 보겠습니다. 데이터를 취득하기 위해 먼저 예제 테이블과 데이터를 준비하겠습니다. 테스트 데이터 만들기 랭크 예제는 성적 테이블을 만들어 사용하도록 하겠습니다. 데이블 생성 -- 성적 테이블 작성 CREATE TABLE STUDENT_GRADE ( STUDENT_ID int NOT NULL, STUDENT_NAME nvarchar(20) NOT NULL, SCORE int NOT NULL, CONSTRAIN...
ALL

MSSQL 만나이 계산하기 DATEDIFF 사용 예제

현재 나이를 계산해야 하거나 지정한 날짜를 기준으로 나이를 계산하고 싶은 경우가 있습니다. 나이 계산은 DATEDIFF 함수를 사용해 간단하게 할 수 있습니다. DATEDIFF 함수는 두 개의 날짜를 비교해 일수를 구하는 함수입니다. 만나이 계산하기 나이를 구하는 방법을 보겠습니다. 만나이 계산 예제 -- 생년월일 DECLARE @BIRTHDAY DATE = '1979-03-17'; -- 나이를 알고 싶은 날짜 DECLARE @DATE DATE = GETDATE(); -- 년수 계산 DECLARE @AGE INT = (SELECT ...
ALL

MSSQL 현재 시간 취득하는 여러 가지 방법

SQL Server에서 현재 시간을 취득하는 함수는 여러 가지가 존재합니다. 그중에서도 많이 사용하는 몇 가지 방법을 보겠습니다. 현재 시간 취득 많이 사용하는 방법으로는 CURRENT_TIMESTAMP, GETUTCDATE(), GETDATE()가 있습니다. 예제 SELECT CURRENT_TIMESTAMP AS RS_CURRENT_TIMESTAMP SELECT GETUTCDATE() AS RS_GETUTCDATE SELECT GETDATE() AS RS_GETDATE 결과 결과값은 모두 동일하며 데이터 타입은datetime입니다...
ALL

MSSQL NULL값 변환 NVL, ISNULL, CASE 사용 방법 예제

SQL Server에서 Null 값을 다른 값으로 변화하는 방법이 몇 가지 있습니다. 대표적인 방법으로 ISNULL과 CASE을 사용합니다. SQL Server에는 NVL이 없습니다. NVL은 오라클에만 있는 함수입니다. ISNULL 사용 방법 ISNULL(값, 변환 문자) 값- NULL인지 체크하고 싶은 값. 변환 문자- 값이 NULL인 경우 변환하고 싶은 문자. ISNULL 함수에는 두 개의 파라미터를 지정합니다. 첫 번째 파라미터는 값이 NULL 인지 체크하고 싶은 컬럼이나 변수를 지정합니다. 두 번째 파라미터에는 체크한 값이...
ALL

MSSQL 공백값과 NULL값 동시에 체크 하는 방법

SQL Server에서는 오라클과 다르게 NULL 값과 공백값을 다르게 취급합니다. 오라클의 경우에는 NULL과 공백값을 같은 값으로 취급하지만, SQL Server의 경우에는 NULL 값은 NULL, 공백은 공백으로 NULL이 아닌 값으로 취급합니다. 공백값과 NULL값 SQL Server 예제를 보도록 하겠습니다. DECLARE @nullTest1 VARCHAR(20); DECLARE @nullTest2 VARCHAR(20) = ''; SELECT ISNULL(@nullTest1,'no data') AS nullTest1 SEL...
ALL

MSSQL 앞에 숫자0 채우기 FORMAT 사용

쿼리를 이용하여 데이터를 표시하는 경우 자리수를 맞춰서 표시해야 하거나 값을 넣을 때에 자리수를 맞춰서 넣고 싶은 경우 앞에 0을 채워서 표시하거나 저장하거나 합니다. SQLServer에는 자리수를 채워주는 LPAD와 RPAD가 없기 때문에 직접 만들어야 합니다. SQLServer에서 앞에 0을 채우는 방법으로 가장 많이 사용하는 방법은 RIGHT 함수를 이용하는 것이 아닌가 합니다. SQLServer 12 이후 부터는 FORMAT 사용해서도 0을 채울수 있습니다. RIGHT를 사용해서 0을 채우는 방법과 FORMAT 사용하는 방법...
ALL

MSSQL 숫자 3자리 콤마 넣기 또는 삭제하기

SQLServer 2012 이후부터는 FORMAT()을 사용해서 간단하게 숫자 3자리마다 콤마를 넣어 금액을 표시할 수 있습니다. 그리고 parse() 사용하여 3자리마다 들어가 있는 콤마를 삭제할 수도 있습니다. 콤마 넣기 - FORMAT() 콤마 삭제 - parse() 3자리 콤마 넣기 FORMAT() 사용해서 숫자 3자리마다 콤마를 넣는 방법을 보겠습니다. 3자리 콤마 예제1 SELECT FORMAT(123456789, N'#,0'); 결과 123,456,789 3자리 콤마 예제2 SELECT FORMAT(123456789, ...