SQL

[이론]SQL 심화 문법 정리 : DECLARE 함수, SET 함수

노력하는 백곰 2024. 12. 4. 08:26

DECLARE  함수

- 변수를  선언하고 데이터 타입을 지정하는 함수(선언된 변수는 스크립트 내에 값이 할당되고 사용될 수 있음)

- DECLARE 함수 활용 예시

DECLARE @StartDate DATE;

 

- 예시) NAME변수에 '홍길동'을 문자열 타입으로 조회하고, AGE변수는 '30'을 정수 타입으로 조회

DECLARE @NAME VARCHAR(10) = '홍길동'
DECLARE @AGE INT = 30;

 

 

SET 함수

- 선언된 변수에 특정 값을 할당하는 함수(값은 고정된 값일 수도 있고, 계산된 결과나 쿼리의 결과일 수 있음)

- SET 함수 활용 예시

# DATEADD : 특정 날짜/시간 단위를 더하여 반환해주는 함수
# DATEDIFF : 두 날짜 사이의 차이를 반환하는 함수

# 1. 값을 직접 지정
SET @StartDate = '2024-01-01'                                   

# 2. 함수를 통한 결과 값을 간접 지정
SET @StartDate = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1, 0);

 

- 예시) 0~23시간별 결과 출력

# hour변수에 '-1'을 넣고 선언
SET @hour =-1;

SELECT 
    (@hour := @hour+1) AS HOUR,
    (SELECT COUNT(*) 
     FROM ANIMAL_OUTS 
     WHERE HOUR(DATETIME) = @hour) AS COUNT 
FROM 
    ANIMAL_OUTS
WHERE 
    @hour < 23
ORDER BY 
    HOUR;