집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 2005에서 ORDER BY 없이 ROW_NUMBER()를 어떻게 사용할 수 있습니까?
SQL Server 2005에서 ORDER BY 없이 ROW_NUMBER()
SQL Server 2005에서 ROW_NUMBER() 함수를 사용하여 결과 집합의 각 행에 대한 고유한 일련 번호입니다. 그러나 이후 버전의 해당 항목과 달리 SQL Server 2005의 ROW_NUMBER()에는 명시적인 ORDER BY 절이 필요합니다. 이 제한은 데이터의 원래 순서를 변경하지 않고 연속 번호를 생성하려고 할 때 문제를 야기합니다.
해결책:
이 제한을 해결하려면 다음을 지정하지 않아도 됩니다. 다음 쿼리를 사용한 명시적인 순서 구문:
INSERT INTO TargetTable (ID, FIELD) SELECT Row_Number() OVER (ORDER BY (SELECT 1)) + Coalesce( (SELECT Max(ID) FROM TargetTable WITH (TABLOCKX, HOLDLOCK)), 0 ), FieldValue FROM SourceTable WHERE {somecondition};
설명:
고려 사항:
위 내용은 SQL Server 2005에서 ORDER BY 없이 ROW_NUMBER()를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!