programing

SQL Server의 동적 SELECT TOP @var

closeapi 2023. 5. 1. 21:23
반응형

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

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

또는 변수를 괄호 안에 넣으십시오.

DECLARE @top INT = 10;

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

동적 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)

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

반응형