반응형
SQL SELECT 다중 열 INTO 다중 변수
SQL을 Teradata에서 SQL Server로 변환하고 있습니다.
Teradata에서는 형식이
SELECT col1, col2
FROM table1
INTO @variable1, @variable2
SQL Server에서
SET @variable1 = (
SELECT col1
FROM table1
);
문당 하나의 열 / 변수 만 허용됩니다. 단일 SELECT 문을 사용하여 2 개 이상의 변수를 할당하는 방법은 무엇입니까?
SELECT @variable1 = col1, @variable2 = col2
FROM table1
SELECT @var = col1,
@var2 = col2
FROM Table
다음은 SET / SELECT에 대한 흥미로운 정보입니다.
- SET는 변수 할당에 대한 ANSI 표준이고 SELECT는 그렇지 않습니다.
- SET는 한 번에 하나의 변수 만 할당 할 수 있고 SELECT는 한 번에 여러 할당을 할 수 있습니다.
- 쿼리에서 할당하는 경우 SET는 스칼라 값만 할당 할 수 있습니다. 쿼리가 여러 값 / 행을 반환하면 SET은 오류를 발생시킵니다. SELECT는 값 중 하나를 변수에 할당하고 여러 값이 반환되었다는 사실을 숨 깁니다 (따라서 다른 곳에서 문제가 발생한 이유를 절대 알 수 없을 것입니다. 문제 해결을 재미있게하십시오)
- 반환 된 값이 없으면 쿼리에서 할당 할 때 SET는 NULL을 할당합니다. 여기서 SELECT는 할당을 전혀 수행하지 않으므로 변수는 이전 값에서 변경되지 않습니다.
- 속도 차이에 관해서는 SET와 SELECT 사이에 직접적인 차이가 없습니다. 그러나 한 번에 여러 할당을 수행하는 SELECT의 기능은 SET보다 약간의 속도 이점을 제공합니다.
참고 URL : https://stackoverflow.com/questions/1340775/sql-select-multi-columns-into-multi-variable
반응형
'developer tip' 카테고리의 다른 글
Ruby on Rails 기능 테스트에서 JSON 결과를 테스트하는 방법은 무엇입니까? (0) | 2020.10.31 |
---|---|
VBA 오류 처리를위한 좋은 패턴 (0) | 2020.10.31 |
사전에 키, 값 쌍을 추가하는 방법은 무엇입니까? (0) | 2020.10.31 |
JsDoc에서 void를 반환하는 방법은 무엇입니까? (0) | 2020.10.31 |
양식 제출시 제출 버튼 비활성화 (0) | 2020.10.31 |