SQL Server / 제어문 / CASE

CASE 함수는 데이터의 값에 따라 특정 값을 부여할 때 사용한다. CASE로 시작하여 END로 끝나고, 조건은 WHEN, 부여할 값은 THEN으로 정의한다.

예를 들어 다음과 같은 점수 데이터가 있다고 하자.

20점 이하는 E, 20점 초과 40점 이하는 D, 40점 초과 60점 이하는 C, 60점 초과 80점 이하는 B, 80점 초과 100점 이하는 A를 주고 싶다면 다음과 같이 쿼리한다.

select 
  point,
  case
    when point <= 20 then 'E'
    when point <= 40 then 'D'
    when point <= 60 then 'C'
    when point <= 80 then 'B'
    when point <= 100 then 'A'
  end as grade
from
  tb_01
;

주의할 점은 한 번 조건에 해당하면 그 다음 조건은 보지 않는 다는 것이다. 즉, 10점은 20점 이하이므로 E가 부여된 후, 40점 이하 조건에도 부합하지만 D가 되지 않는다. 따라서 순서가 중요하다. 만약 아래처럼 한다면 모두 A가 된다.

select 
  point,
  case
    when point <= 100 then 'A'
    when point <= 80 then 'B'
    when point <= 60 then 'C'
    when point <= 40 then 'D'
    when point <= 20 then 'E'
  end as grade
from
  tb_01
;

순서를 신경쓰는 게 싫다면 아래처럼 쿼리할 수도 있다.

select 
  point,
  case
    when ( point > 81 and point <= 100 ) then 'A'
    when ( point > 61 and point <= 80 ) then 'B'
    when ( point > 41 and point <= 60 ) then 'C'
    when ( point > 21 and point <= 40 ) then 'D'
    when ( point >= 0 and point <= 20 ) then 'E'
  end as grade
from
  tb_01
;

같은 카테고리의 다른 글
SQL Server / Query / ROLLUP

SQL Server / Query / ROLLUP

부분합 등을 구하고 싶다면 ROLLUP을 사용한다. 기본 다음과 같은 sales 테이블이 있다고 하자. team은 소속, man은 직원, sales는 판매액이다. select * from sales ; 다음과 같이 하면 직원별 소계, 팀별 소계, 전체 합계가 출력된다. select id, team, man, sum( sales ) as sales from sales group by rollup ( team, man, id ) ; 다음과 같이 ...

SQL Server / Query / 주석

SQL Server / Query / 주석

주석으로 처리하면 해당 문자열은 실행되지 않습니다. 코드에 설명을 달거나 특정 쿼리를 잠시 실행시키고 싶지 않을 때 사용합니다. 주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 --로 만듭니다. -- 뒤에 있는 문자열이 주석이 됩니다. -- Commnet SELECT * FROM myDB; -- Comment 여러 줄 주석을 만들고 싶다면 /*와 */로 감쌉니다. 그 사이에 있는 ...

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server의 사용자 계정은 Windows 인증을 이용한 사용자 계정, SQL Server 자체의 사용자 계정이 있습니다. 그 중 SQL Server 자체의 사용자 계정을 만들고, 권한을 부여하는 방법을 알아보겠습니다. SSMS로 SQL Server에 접속합니다. 을 선택합니다.(확장하면 전체 사용자 목록을 볼 수 있습니다.) 마우스 우클릭하고 을 클릭합니다. 사용자를 추가하는 창이 뜹니다. 을 선택하고... 로그인 ...

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server에 스케줄에 따라 자동 백업하는 작업을 추가할 때 다음과 같은 메시지가 나왔습니다. SQL Server Agent가 실행되고 있지 않아 작업을 추가할 수 없는 것입니다. SQL Server Agent가 실행 중이 아니어서 발생한 문제이므로, 실행시키면 해결되겠죠? SQL Server가 설치된 컴퓨터의 서비스를 엽니다. Windows Server라면 서버 관리자에서 를 클릭하면 됩니다. 아니면, 실행 창을 ...

SQL Server / SSMS / 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함 설정 변경하는 방법

SQL Server / SSMS / 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함 설정 변경하는 방법

SSMS로 테이블 작업을 할 때 다음과 같은 메시지와 함께 저장이 되지 않는 경우가 있다. 변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야 합니다. 다시 만들 수 없는 테이블을 변경했거나 옵션을 설정했습니다. 테이블 열의 순서를 변경하는 등 특정 ...

SQL Server / 제어문 / CASE

SQL Server / 제어문 / CASE

CASE 함수는 데이터의 값에 따라 특정 값을 부여할 때 사용한다. CASE로 시작하여 END로 끝나고, 조건은 WHEN, 부여할 값은 THEN으로 정의한다. 예를 들어 다음과 같은 점수 데이터가 있다고 하자. 20점 이하는 E, 20점 초과 40점 이하는 D, 40점 초과 60점 이하는 C, 60점 초과 80점 이하는 B, 80점 초과 100점 이하는 A를 주고 ...

SQL Server / 데이터베이스 / 만들기, 삭제하기, 수정하기, 조회하기

데이터베이스 만들기 데이터베이스는 create database로 만든다. shop이라는 이름의 데이터베이스를 만든다. create database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. create database "shop.shop"; create database ; 데이터베이스 삭제하기 데이터베이스는 drop database로 삭제한다. drop database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. drop database "shop.shop"; drop database ; 데이터베이스 사용하기 작업 대상이 되는 데이터베이스를 ...

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

만약 공부에 필요한 샘플 데이터베이스가 필요하다면 Micrososft에서 제공하는 AdventureWorks를 사용하자. AdventureWorks 샘플 데이터베이스 페이지에 접속하여 백업 파일을 다운로드한다. AdventureWorks는 OLTP 데이터베이스, AdventureWorksDW는 OLAP 데이터베이스, AdventureWorksLT는 AdventureWorks의 경량 및 축소 버전이다. 디스크 공간이 충분하다면 AdventureWorks와 AdventureWorksDW를 설치하자. SSMS에서 를 선택하고... 마우스 우클릭 후 을 클릭한다. 를 선택하고, 찾아보기 아이콘을 클릭한 후... 를 클릭하고... 다운로드한 파일을 선택하고 을 클릭한다. 을 ...

SQL Server / 데이터베이스 저장 위치 변경하는 방법

SQL Server / 데이터베이스 저장 위치 변경하는 방법

데이터베이스 기본 저장 위치 변경 데이터베이스를 만들거나 복원할 때 기본적으로 저장되는 위치는 SQL Server를 설치할 때 정합니다. 그 위치를 변경하고 싶다면 다음과 같이 합니다. 서버를 선택하고 마우스 우클릭 후 을 클릭합니다. 왼쪽 메뉴에서 을 클릭합니다. 를 원하는 위치로 변경하고... 을 클릭합니다. 서버를 재부팅하거나, 서비스에서 SQL Server를 다시 시작해야 반영됩니다. 데이터베이스 만들 때 저장 위치 ...

SQL Server 2022 / SQL Server 서비스 시작, 중지, 다시 시작하는 방법

SQL Server 2022 / SQL Server 서비스 시작, 중지, 다시 시작하는 방법

SQL Server의 서비스를 시작, 중지, 다시 시작하는 방법은 여러 가지가 있다. 그 중 UI를 이용하는 세 가지 방법을 소개한다. SQL Server Configuration Manager SQL Server Configuration Manager를 연다. 왼쪽에서 를 선택한다. 오른쪽에서 SQL Server를 선택하고 마우스 우클릭한다. 원하는 서비스 관련 작업을 클릭한다. SSMS SSMS로 SQL Server에 접속한다. 개체를 선택하고 마우스 우클릭한다. 원하는 서비스 관련 작업을 클릭한다. 서비스 SQL Server를 ...