반응형
SQL 쿼리의 결과 집합에 행 번호 추가
나는 간단한 선택 진술서가 있습니다.결과 집합의 행 수를 나타내는 임시 열을 추가하려고 합니다.내가 해봤어,
declare @num int
set @num = 0;
select t.A, t.B, t.C, (@count + 1) as number
from tableZ as t
모든 행에 1을 할당합니다.@count = @count + 1을 시도했지만 작동하지 않았습니다.어떻게 하면 간단한 방법으로 할 수 있을까요?
감사해요.
SELECT
t.A,
t.B,
t.C,
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number
FROM tableZ AS t
물론 행 번호 매기기 순서를 정의할 수도 있습니다. 그렇다면 그냥 스왑하십시오.OVER (ORDER BY (SELECT 1))
예를 들어,OVER (ORDER BY t.C)
여느 때와 마찬가지로ORDER BY
절
일반적인 패턴은 다음과 같습니다. 그러나 테이블은 정의상 정렬되지 않은 행의 백이므로 실제로 순서를 적용하는 방법을 정의해야 합니다.특정 순서가 중요하지 않은 경우 이를 수행하는 한 가지 방법은 피복 인덱스의 선행 키, 군집화된 인덱스의 선행 키 또는 임의 그룹의 열 by / order by 절을 사용하는 것입니다.이 경우엔 제 생각엔A
의 단일 열 클러스터링 키입니다.t
:
SELECT t.A, t.B, t.C, number = ROW_NUMBER() OVER (ORDER BY t.A)
FROM dbo.tableZ AS t
ORDER BY t.A;
순서가 중요하지 않은 경우 다음을 사용하여 임의/비결정론적 행 번호를 생성할 수 있습니다.
ROW_NUMBER() OVER (ORDER BY @@SPID)
-- or for serial plans
ROW_NUMBER() OVER (ORDER BY @@TRANCOUNT)
이 기사에서 폴 화이트로부터 배운 작은 속임수("폴의 해결책" 참조).
질문의 변수가 무엇을 나타내야 하는지 잘 모르겠습니다(일치하지 않음).
언급URL : https://stackoverflow.com/questions/20232641/add-a-row-number-to-result-set-of-a-sql-query
반응형
'sourcecode' 카테고리의 다른 글
유니온에서 현재 어떤 유형이 사용되고 있는지 어떻게 확인합니까? (0) | 2023.07.02 |
---|---|
SQL 스키마 비교 오류 "Target is unavailable" (0) | 2023.07.02 |
SQL Developer는 스크립트 실행을 지원합니까? (0) | 2023.06.27 |
오류: TCP 공급자: 오류 코드 0x2746입니다.Linux에서 터미널을 통해 SQL을 설정하는 동안 (0) | 2023.06.27 |
"="와 "<-" 할당 연산자의 차이점은 무엇입니까? (0) | 2023.06.27 |