반응형
T-SQL, 단일 선택에서 둘 이상의 변수 업데이트
한 번의 선택으로 둘 이상의 로컬 변수를 업데이트할 수 있습니까?
다음과 같은 것:
set
@variableOne = avg(someColumn),
@variableTwo = avg(otherColumn)
from tblTable
이 작업과 같은 사소한 작업에 대해 두 개의 별도 선택 작업을 수행하는 것은 다소 낭비가 되는 것 같습니다.
set @variableOne = ( select avg(someColumn) from tblTable )
set @variableTwo = ( select avg(otherColumn) from tblTable )
이와 같은 것:
select @var1 = avg(someColumn), @var2 = avg(otherColumn)
from theTable
SELECT 할당을 사용하여 여러 변수를 할당할 수 있습니다.이 코드는 상수의 단일 행을 생성하고 각 행을 변수에 할당합니다.
SELECT
@var1 = 1,
@var2 = 'Zeus'
테이블을 쿼리하고 다음과 같은 방식으로 할당할 수도 있습니다.
SELECT
@var1 = c.Column1,
@var2 = c.Column2,
FROM
Customers c
WHERE c.CustomerID = @CustomerID
주의: 이 코드는 일시적인 루프처럼 작동합니다.
- 행이 여러 개인 경우 각 행이 변수에 할당되고 마지막 행이 변수에 남아 있게 됩니다.순서를 지정하지 않은 경우 마지막 행이 될 행에 대한 제어를 포기했습니다.
- 행이 없으면 변수가 전혀 할당되지 않습니다.변수는 null로 설정되지 않고 변경되지 않은 상태로 유지됩니다.이는 할당이 루프에서 수행되는 경우(일반적으로 변수가 변경되지 않으므로 무한 루프가 발생함) 핵심 문제입니다.
SELECT 할당보다 SET 할당을 사용하는 것을 선호합니다.위의 두 시나리오를 모두 고려할 때만 SELECT 할당을 사용하십시오.
어때.
SELECT @variableOne = avg(someColumn), @variableTwo = avg(otherColumn) from tblTable
저한테는 잘 맞습니다.
SELECT DISTINCT
@Var1 = Column1,
@Var2 = Column2
FROM MyTable
WHERE Columnx = @Parm1
언급URL : https://stackoverflow.com/questions/469318/t-sql-updating-more-than-one-variable-in-a-single-select
반응형
'programing' 카테고리의 다른 글
Mongo 셸이 파일에서 쿼리를 실행하고 결과를 표시합니다. (0) | 2023.07.04 |
---|---|
UITableView 일부 셀을 "선택할 수 없음"으로 설정 (0) | 2023.07.04 |
Python에서 새 줄 구분 기호를 사용하여 문자열 분할 (0) | 2023.07.04 |
install_referrer 의도 사용 중지 (0) | 2023.07.04 |
Rdplyr: 여러 열 삭제 (0) | 2023.07.04 |