2014-10-01 2 views
-2

SQL Server에서 단 하나의 행만 삭제할 수없는 이유는 무엇입니까?SQL 서버에서 단 하나의 행만 쿼리하는 방법

내 테이블과 쿼리입니다. 제발 해결하고 해결책을주세요. 덕분에 ... SQLSERVER에

ID     IdSuratKeluar    Type KodePosition 
FDBC015F-8DCB-44F2-956F-262A3FB379B6 CE7A98B8-7A98-45FC-A338-322BD8BE02BD 2 0041 
656CBFFA-F279-461D-B1B8-61D07B348223 CE7A98B8-7A98-45FC-A338-322BD8BE02BD 2 0037 
656CBFFA-F279-461D-B1B8-61D07B348225 CE7A98B8-7A98-45FC-A338-322BD8BE02BD 2 0037 

내 쿼리 :

DELETE SuratKeluarPermission where KodeJabatan In 
(select Top(1) KodePosition from SuratKeluarPermission Where IdSuratKeluar='CE7A98B8-7A98-45FC- A338-322BD8BE02BD' and KodePosition='0037') 
+0

'DELETE FROM'. 'SQL'에 대해 조금 읽어야합니다. – melancia

+0

그리고 테이블에이 칼럼이 없습니다 :'KodeJabatan' – melancia

답변

0
;WITH CTE AS 
(
Select SuratKeluarPermission ,KodeJabatan,ROW_NUMBER()OVER(PARTITION BY KodePosition ORDER BY (SELECT NULL)) RN from SuratKeluarPermission 
) 
DELETE FROM CTE where RN > 1 
+0

작동합니다 ... Thanks @ Mohan111 =) –

+0

만약 내가이 링크에 대한 나의 쿼리 => "https : //stackoverflow.com/questions/26134978/how-to-create-query-join-with-multiple-conditions-in-sql-server ". 고마워 ... =) –

0

이 테이블에서 주어진 기준에 임의의 행을 삭제합니다 :

;WITH CTE as 
( 
    SELECT Top(1) * 
    FROM SuratKeluarPermission 
    WHERE 
    IdSuratKeluar='CE7A98B8-7A98-45FC-A338-322BD8BE02BD' and 
    KodePosition='0037' 
    ORDER BY NEWID() 
) 
DELETE FROM CTE 

면책 조항 : 어떤 세계에서 이것이 유용 할 지 모르겠다.

관련 문제