주소 테이블이 IDENTITY 열과 같은 정수 기반의 대리자 기본 키를 사용한다고 가정하고 실제로 어떤 것이 DEFAULT로 표시되는지 신경 쓰지 않으면 다음과 같이 할 수 있습니다 (DEFAULT로 가장 낮은 정수 값을 갖는 행).
DECLARE @Addresses TABLE
(
AddressID INT ,
CustomerID INT ,
AddressType VARCHAR(8)
)
INSERT INTO @Addresses
(AddressID ,
CustomerID ,
AddressType
)
SELECT 1 ,
1 ,
NULL --Client 1 has 3 addresss
UNION ALL
SELECT 2 ,
1 ,
NULL
UNION ALL
SELECT 3 ,
1 ,
NULL
UNION ALL
SELECT 4 ,
2 ,
NULL --Client 2 has 1 addresses
UNION ALL
SELECT 5 ,
3 ,
NULL --Client 3 has 2 addresses
UNION ALL
SELECT 6 ,
3 ,
NULL
SELECT *
FROM @Addresses a
--update an arbitrary address ASSUMING that you used an integer for a surrogate primary key
UPDATE @Addresses
SET AddressType = CASE WHEN AddressID IN (SELECT MIN(AddressID)
FROM @Addresses a
GROUP BY a.CustomerID) THEN 'Default'
ELSE 'Shipping'
END
SELECT *
FROM @Addresses a
첫 번째 것은 기본 정렬에서 처음 표시됩니다. – Sorskoot