IT

SQL Server의 동적 SELECT TOP @var

lottoking 2020. 3. 19. 08:31
반응형

SQL Server의 동적 SELECT TOP @var


SQL Server에서 반환 할 행 수를 설정하는 동적 변수를 어떻게 가질 수 있습니까? 아래는 SQL Server 2005+에서 유효한 구문이 아닙니다.

DECLARE @count int
SET @count = 20

SELECT TOP @count * FROM SomeTable

SELECT TOP (@count) * FROM SomeTable

이것은 SQL 2005 이상에서만 작동합니다


"select top (@var) ..."구문은 SQL SERVER 2005+에서만 작동합니다. SQL 2000의 경우 다음을 수행 할 수 있습니다.

set rowcount @top

select * from sometable

set rowcount 0 

도움이 되었기를 바랍니다

오이 신.

(@@ rowcount를 rowcount로 대체하도록 편집 됨-감사합니다.


x0n의 예에서 다음과 같아야합니다.

SET ROWCOUNT @top

SELECT * from sometable

SET ROWCOUNT 0

http://msdn.microsoft.com/en-us/library/ms188774.aspx


동적 SQL을 사용하고 exec 명령으로 실행할 수도 있습니다.

declare @sql  nvarchar(200), @count int
set @count = 10
set @sql = N'select top ' + cast(@count as nvarchar(4)) + ' * from table'
exec (@sql)

또는 그냥 변수를 괄호 안에 넣습니다.

DECLARE @top INT = 10;

SELECT TOP (@Top) *
FROM <table_name>;

declare @rows int = 10

select top (@rows) *
from Employees
order by 1 desc -- optional to get the last records using the first column of the table

참고 URL : https://stackoverflow.com/questions/175962/dynamic-select-top-var-in-sql-server

반응형