2013-04-22 3 views
-1

인덱스가 ID로 설정되지 않은 테이블에 왼쪽 조인 쿼리의 결과를 추가해야하지만 int는 여전히 고유해야합니다. 삽입 쿼리는 다음과 같습니다.조인 쿼리에서 ID 열을 사용하여 행 인덱스 가져 오기

INSERT INTO Table1 (S.SubjectID, S.Subject, S.SubjectDescription, S.Status) 
SELECT (Select MAX(SubjectID) FROM Table1) + ???? , N.Code, N.Literal, N.Trans 
FROM Table2 N LEFT JOIN Table1 S ON N.Code = S.Subject 
WHERE (N.Code IS NULL OR S.Subject IS NULL OR N.Trans = 'D') 

ID가 고유하게 될 table1에 삽입 할 때 값이 증가 할 필요가있는 곳입니다.

테이블의 구조를 변경하는 것이 허용되지 않았으므로, 즉시 계산할 수있는 무언가가 필요합니다.

언제나 그렇듯이 도움말, 팁 및 참고 자료는 대단히 감사하겠습니다.

답변

1

대부분의 데이터베이스에서이 목적으로 row_number()을 사용할 수 있습니다. 다음은 SQL Server 구문을 사용한 예입니다.

INSERT INTO Table1 (S.SubjectID, S.Subject, S.SubjectDescription, S.Status) 
SELECT (Select MAX(SubjectID) FROM Table1) + row_number() over (order by (select NULL)) , 
     N.Code, N.Literal, N.Trans 
FROM Table2 N LEFT JOIN Table1 S ON N.Code = S.Subject 
WHERE (N.Code IS NULL OR S.Subject IS NULL OR N.Trans = 'D') 
+0

아, 고맙습니다. row_number()는 내가 찾고있는 것이 었습니다. 나는 W3S 웹 사이트에서 그것을 보지 못했습니다. 그래서 나는 왜 여기에 올렸습니다. – HelloWorld

관련 문제