SQL 프로그래밍(1)
IF ... ELSE
조건문
참과 거짓에 의해서 실행해야 할 구문이 다를 때 사용함
IF <부울 표현식>
BEGIN -- '{' 역할
SQL문장들1...
END -- '}' 역할
ELSE
BEGIN
SQL문장들2...
END
예제 코드
DECLARE @var1 INT -- @var1에 변수 선언
SET @var1 = 100 -- 변수에 값 대입
IF @var1 = 100 -- 만약 @var1이 100이라면,
BEGIN
PRINT '@var1이 100이다'
END
ELSE
BEGIN
PRINT '@var1dl 100이 아니다'
END
실행 결과
@var1이 100이다
CASE
여러 개의 경우에 따라서 서로 다른 구문을 수행할 경우 IF 문보다 간결하게 사용할 수 있음
예제 코드
DECLARE point INT, @credit NCHAR(1)
SET @point = 100
SET @credit =
CASE
WHEN (@point >= 90) THEN 'A'
WHEN (@point >= 80) THEN 'B'
WHEN (@point >= 70) THEN 'C'
WHEN (@point >= 60) THEN 'D'
ELSE 'F'
END
PRINT '취득점수 ==>' + CAST(@point AS NCHAR(3)) -- 숫자를 문자로 변환
PRINT '학점 ==>' + @credit
실행 결과
취득점수 ==> 100
학점 ==> A
활용
구매내역의 회원 별 총액
USE sqlDB;
SELECT userID, SUM(price * amount)
FROM buyTBL
GROUP BY userID
ORDER BY SUM(price * amount) DESC;
실행 결과
userID | |
---|---|
BBK | 1920 |
KBS | 1210 |
JYP | 200 |
EJW | 95 |
SSK | 75 |
구매내역의 회원(+ name) 별 총액
USE sqlDB;
SELECT B.userID, U.name, SUM(B.price * B.amount)
FROM buyTBL B
INNER JOIN userTBL U
ON B.userID = U.userID
GROUP BY B.userID, U.name
ORDER BY SUM(B.price * B.amount) DESC;
실행 결과
userID | name | |
---|---|---|
BBK | 바비킴 | 1920 |
KBS | 김범수 | 1210 |
JYP | 조용필 | 200 |
EJW | 은지원 | 95 |
SSK | 성시경 | 75 |