-해당 게시글은 https://jundol.me/77 블로그를 참조하였습니다.
DECLARE @변수이름 데이터형식
DECLARE @HOUR VARCHAR(50) - 예시
SET @변수이름 = 변수의 값
SET @HOUR = -1
SELECT @변수이름
DECLARE @myVar1 INT
DECLARE @myVar1 SMALLINT, @myVar3 DECIMAL(5,2)
DECLARE @myVar4 NCHAR(20)
SET @myVar1 = 5
SET @myVar2 = 3
SET @myVar3 = 4.25
SET @myVar4 = 'CARD TYPE==>'
SELECT @myVar1
SELECT @myVar2 + @myVar3
SELECT @myVar4, * FROM Sales.CreditCard WHERE ExpMonth = 12
SET @HOUR = -1;
SELECT (@HOUR := @HOUR +1) AS HOUR,
(SELECT COUNT(HOUR(DATETIME))
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)=@HOUR) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23;
- SET을 통해서 변수 설정해주고!
- SELECT 통해서 변수 값 대입 ( = 은 비교연산자로 인식되기 때문에(SET 구문 제외), != 를 통해 변수 값 설정합니다
- != +1 을 통해서 23까지 컬럼에 값이 생기도록 만듭니다 (반복문처럼)
아래 내용은 https://extbrain.tistory.com/46 블로그를 참조했습니다.
하나의 반환 값은 동작하지 않아요~~!
CASE
WHEN 조건
THEN '반환 값'
WHEN 조건
THEN '반환 값'
ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END
- WHEN과 THEN은 한 쌍이어야 합니다.
- WHEN과 THEN은 다수 존재 가능합니다.
- ELSE가 그 외 조건에 대해 반환 값 설정 가능합니다.
- ELSE가 존재하지 안혹, 조건에 맞지 않아서 반환 값이 없으면 NULL를 반환합니다.
SELECT (
CASE
WHEN PRICE < 10000
THEN 0
ELSE TRUNCATE(PRICE, -4) # 4개 삭제하면 0으로 바뀌는 거구나!
END) AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
- TRUNCATE(PRICE, -4) -> PRICE 가격을 뒤에서 4번째 까지 버려서 0으로 만들어짐 !!!!!!!
SELECT CAR_ID,
CASE
WHEN CAR_ID IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE) THEN '대여중'
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
- 위와 같이 CASE WHEN 구문 활용하는 것은 알았지만, 저렇게 서브쿼리를 쓸 수 있구나라는 건 청므 알았다
- 그리고( '2022-10-16' BETWEEN START AND END) BETWEEN 구문 자주나오는데 암기하고 있자!!