Search

2016년 1월 14일 목요일

[Database] [MSSQL] SELECT구문에서 DECLARE 변수에 바로 값 넣어서 사용하기.

* 사원테이블(Employee_Table)은 Employee_ID(PK)를 통해 관리되고 있다고 가정하고,
 영업테이블(Sales_Table)의 실적은 Employee_ID별로 Sales_Amonut 컬럼에 기록된다고 가정하자.
 이때, 영업실적이 가장 좋은 1등 사원에 대한 정보를 조회하고 싶으면 아래와 같은 구문을 사용할 것이다.
-- Sales_Table에서 영업실적이 가장 좋은 사원의 ID를 하나 가져와 Employee_Table에서 찾는다.
SELECT *
FROM Employee_Table
WHERE Employee_ID = (SELECT TOP 1 Employee_ID
                     FROM Sales_Table
                     ORDER BY Sales_Amount DESC)


* 그런데, 이 1등 사원의 Employee_ID를 여기저기에서 계속 사용해야 한다면, DECLARE로 변수를 선언해 값을 넣어두고 사용하면 추가적인 비용을 줄일 수 있을것이다. 이때는 아래와 같이 SELECT 구문에서 바로 변수에 값을 대입할 수 있다.
-- 먼저 변수 @TOP_1_ID를 선언하여 Sales_Table에서 영업실적이 가장 좋은 사원의 ID를 하나 저장한다.
DECLARE @TOP_1_ID VARCHAR(8)
SELECT TOP 1 @TOP_1_ID = Employee_ID
FROM Sales_Table
ORDER BY Sales_Amount DESC

-- @TOP_1_ID 변수를 이용해 Employee_Table에서 사원 정보를 조회한다.
SELECT *
FROM Employee_Table
WHERE Employee_ID = @TOP_1_ID


댓글 없음:

댓글 쓰기