내가 하는일/SQL
컬럼값 교환
Tenin
2010. 2. 4. 09:30
UPDATE 에는 컬럼 값이 설정될때 로컬 변수 값도 설정하여 개발자가 이 로컬 변수를 갱신 작업 자체에서 사용할수 있는 멋진 기능이 있다.
T-SQL은 왼쪽에서 오른쪽으로 진행되기 때문에 로컬 변수를 SET절의 왼쪽에서 설정하고, 이를 오른쪽 뒤에서 사용하여 컬럼값을 지정해
줄 수 있다. 예를 들어, 이 기능을 두 컬럼의 값을 서로 바꾸기 위해 사용할 수 있는데, 아래 예제를 살펴보자
CREATE TABLE #samples samp2 INT ) INSERT #samples ( samp1, samp2) VALUES( 1,2) INSERT #samples ( samp1, samp2) VALUES( 3,4) INSERT #samples ( samp1, samp2) VALUES( 5,6)
SELECT * FROM #samples
DECLARE @swap float
UPDATE #samples SELECT * FROM #samples GO |
UPDATE 문장에 의해 참조되는 컬럼 값들은 항상 연산 이전의 값을 반영하기 때문에, 이들을 교환하기 위해 매개변수를 사용하지 않아도 된
다. 아래처럼 말이닷!
UPDATE #sample SET samp1 = samp2, samp2= samp1 |