[SQL] 행 번호는 SQL 쿼리의 결과 집합에 추가
SQL행 번호는 SQL 쿼리의 결과 집합에 추가
나는 간단한 select 문을 가지고있다. 나는 내 결과 세트의 행 번호를합니다 임시 열을 추가 할 수 있습니다. 나는이 시도 -
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 시도하고 작동하지 않았다. 어떻게 간단한 방식으로이 일을해야합니까?
감사.
해결법
-
==============================
1.다음과 같이 전형적인 패턴이 될 것이지만, 실제로 순서를 적용 할 방법을 정의해야합니다 (테이블의 행, 정의에 의해, 정렬되지 않은 가방이기 때문에)
다음과 같이 전형적인 패턴이 될 것이지만, 실제로 순서를 적용 할 방법을 정의해야합니다 (테이블의 행, 정의에 의해, 정렬되지 않은 가방이기 때문에)
SELECT t.A, t.B, t.C, number = ROW_NUMBER() OVER (ORDER BY t.A) FROM dbo.tableZ AS t ORDER BY t.A;
확실하지 귀하의 질문에 변수가 대표로되어있는 것을 (그들은이 일치하지 않습니다).
-
==============================
2.
SELECT t.A, t.B, t.C, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number FROM tableZ AS t
SQLFiddle에서 예를 들어 작업 참조
물론, 당신은 행 번호 순서를 정의 할 수 있습니다 - 만약 그렇다면, 단지 BY 절 일반 ORDER에서처럼, 예를 들면, 대한 OVER (ORDER BY t.C)을 (ORDER BY는 (1) 선택) OVER 교환합니다.
-
==============================
3.그래서 MySQL의 8.0 전에 더 ROW_NUMBER () 함수는 존재하지 않는다. MySQL의 이전 버전을 지원하기 위해 다시 Accpted 대답 :
그래서 MySQL의 8.0 전에 더 ROW_NUMBER () 함수는 존재하지 않는다. MySQL의 이전 버전을 지원하기 위해 다시 Accpted 대답 :
SET @row_number = 0; SELECT t.A, t.B, t.C, (@row_number:=@row_number + 1) AS number FROM dbo.tableZ AS t ORDER BY t.A;
from https://stackoverflow.com/questions/20232641/add-a-row-number-to-result-set-of-a-sql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 이미 데이터가있는 MySQL 데이터베이스 필드에 데이터를 추가 (0) | 2020.06.26 |
---|---|
[SQL] ORDER BY "ENUM 필드"MYSQL에서 (0) | 2020.06.26 |
[SQL] 어떻게 SQL SELECT 문에서 패키지 상수를 사용 하는가? (0) | 2020.06.26 |
[SQL] 매개 변수가 모두 선택 null의 경우 SQL 쿼리 (0) | 2020.06.26 |
[SQL] 시간없이 날짜 만 아는하여 테이블에서 선택 (ORACLE) (0) | 2020.06.26 |