키 값이 같은 여러 건의 데이터 중 하나만 빼고 다 지우고 싶을때
나같은 경우에는 키 값이 두개라 IN으로 엮을 순 없었고 커서 써서 삭제하는 방식을 썼다
다만 중복 건수가 2건이 넘지 않는걸 알았기에 Top에는 1이라고 박음
만약에 여러건이라면 카운트 값 가져와서 삭제해버리면 되겠지
후아암...
DECLARE @OrdWk as nvarchar(20) = NULL
DECLARE OrderDistinct CURSOR FOR
SELECT OrdWk FROM T_Order
WHERE OrdRout <> '구매'
GROUP BY OrdWk
HAVING COUNT(OrdWk) > 1
SELECT OrdWk FROM T_Order
WHERE OrdRout <> '구매'
GROUP BY OrdWk
HAVING COUNT(OrdWk) > 1
OPEN OrderDistinct
FETCH NEXT FROM OrderDistinct INTO @OrdWk;
WHILE @@FETCH_STATUS = 0
FETCH NEXT FROM OrderDistinct INTO @OrdWk;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
DELETE TOP(1)
FROM T_Order
WHERE OrdWk = @OrdWk
END
BEGIN
DELETE TOP(1)
FROM T_Order
WHERE OrdWk = @OrdWk
END
FETCH NEXT FROM OrderDistinct INTO @OrdWk
END
END
CLOSE OrderDistinct
DEALLOCATE OrderDistinct
GO
DEALLOCATE OrderDistinct
GO
댓글 없음 :
댓글 쓰기