MSSQL

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, ...
ALL

MSSQL MERGE사용 안하고 있으면 UPDATE 없으면 INSERT 하기

SQLServer 2008 이상이면 MERGE를 사용하여 데이터가 있으면 UPDATE 없으면 INSERT를 할 수 있습니다. SQLServer 2005에서는 MERGE를 사용할 수 없기 때문에 직접 만들어줘야 합니다. 그러면 바로 작성방법을 보도록 하겠습니다. 먼저 테스트용 테이블을 작성하겠습니다. -- 테스트용 테이블 CREATE TABLE .( NOT NULL, (3) NOT NULL, (10) NULL, CONSTRAINT PRIMARY KEY CLUSTERED  ( ASC )WITH (STATISTICS_NORECOMPUTE...
ALL

MSSQL MERGE 테이블에 있으면 업데이트 없으면 추가 하기

SQL Server에서 MERGE를 사용하여 테이블 데이터를 업데이트(UPDATE) 또는 추가(INSERT)하는 방법을 보겠습니다. 우선 MERGE를 사용 하는 이유로 여러가지가 있지만 보관용 테이블에 최신 데이터로 갱신해야 하는 경우가 많습니다. 보관용 테이블에 데이터가 존재하는 경우에는 최신 데이터로 업데이트를 해줘야 하고, 존재하지 않는 데이터의 경우에는 추가를 해줘야 합니다. 쿼리로도 작성할 수 있지만 MERGE를 사용해서도 UPDATE와 INSERT를 간단하게할 수 있습니다. MERGE 사용 방법 --base_table를 ...