반응형
MSSQL 증분 정수 열이 있는 문 선택...일반적이지 않은
가능하면 임의 테이블에서 값을 반환하고 첫 번째 행에 대해 값 = 1, 두 번째 행에 대해 2 등의 증분 정수 열도 반환하는 t-sql 쿼리가 필요합니다.
이 열은 실제로 어떤 테이블에도 존재하지 않으며, ORDER BY 절이 테이블의 행을 정렬할 수 있으므로 항상 완벽한 모양으로 증분 행을 사용해야 합니다.
솔루션은 SQL Server 2000에서 실행되어야 합니다.
SQL 2005 이상의 경우
SELECT ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS 'rownumber',*
FROM YourTable
2000년을 위해 당신은 이것과 같은 것을 해야 합니다.
SELECT IDENTITY(INT, 1,1) AS Rank ,VALUE
INTO #Ranks FROM YourTable WHERE 1=0
INSERT INTO #Ranks
SELECT SomeColumn FROM YourTable
ORDER BY SomeColumn
SELECT * FROM #Ranks
Order By Ranks
여기에서 행 번호 참조
여기서 사용자 지정 번호로 시작하여 증분할 수 있습니다. 예를 들어, 각 결제에 대해 수표 번호를 추가하려는 경우:
select @StartChequeNumber = 3446;
SELECT
((ROW_NUMBER() OVER(ORDER BY AnyColumn)) + @StartChequeNumber ) AS 'ChequeNumber'
,* FROM YourTable
각 행에 대한 올바른 수표 번호를 제공합니다.
ROW_NUMBER() 시도
http://msdn.microsoft.com/en-us/library/ms186734.aspx
예:
SELECT
col1,
col2,
ROW_NUMBER() OVER (ORDER BY col1) AS rownum
FROM tbl
보기 흉하고 성능이 좋지 않지만, 기술적으로 이것은 적어도 하나의 고유한 필드가 있는 모든 테이블에서 작동하며 SQL 2000에서 작동합니다.
SELECT (SELECT COUNT(*) FROM myTable T1 WHERE T1.UniqueField<=T2.UniqueField) as RowNum, T2.OtherField
FROM myTable T2
ORDER By T2.UniqueField
참고: 이 방법을 사용하여 외부 SELECT에 WHERE 절을 추가할 경우, 숫자를 연속적으로 사용하려면 내부 SELECT에도 추가해야 합니다.
언급URL : https://stackoverflow.com/questions/534240/mssql-select-statement-with-incremental-integer-column-not-from-a-table
반응형
'source' 카테고리의 다른 글
Axios API에서 데이터를 반환하는 중 (0) | 2023.07.30 |
---|---|
socket.io 방 또는 네임스페이스? (0) | 2023.07.30 |
차체에 새 필드 추가 예외 스프링 받침대 (0) | 2023.07.30 |
히스토그램 산점도 행렬 lib (0) | 2023.07.25 |
MySQL/MariaDB 업데이트 카운터 그룹 기준 (0) | 2023.07.25 |