반응형
동적으로 만들지 않고 SQL Server의 select 문에서 TOP과 함께 변수 사용
이 질문에는 이미 답변이 있습니다.
- SQL Server 6의 동적 SELECT TOP @var 답변
declare @top int
set @top = 5
select top @top * from tablename
가능합니까?또는 그러한 논리에 대한 아이디어가 있습니까 (동적 쿼리를 사용하고 싶지 않습니다)?
예. SQL Server 2005에서는
top
절 에서 변수를 사용할 수 있습니다 .
select top (@top) * from tablename
SQL Server 2005에서는 실제로 변수, 식 또는 문을 사용하여 TOP 절을 매개 변수화 할 수 있습니다. 따라서 다음과 같은 작업을 수행 할 수 있습니다.
SELECT TOP (@foo) a FROM table ORDER BY a
SELECT TOP (SELECT COUNT(*) FROM somewhere else) a FROM table ORDER BY a
SELECT TOP (@foo + 5 * 4 / 2) a FROM table ORDER BY a
이 스레드에는 여러 개의 회신이 있기 때문에 2005 이상에서이를 수행 할 수 있습니다.덜 알려진 것은 SET ROWCOUNT를 사용하여 2k로도이를 달성 할 수 있다는 것입니다.
-- Works in all versions
SELECT TOP 10
-- Does not work on 2000
SELECT TOP (10)
SELECT TOP (@rows)
-- Works in both 2ooo and 2oo5
SET ROWCOUNT @max
SELECT *
FROM ...
SET ROWCOUNT 0
마지막에 SET ROWCOUNT 0을 잊어 버린 경우 한계가 지속됩니다. 버그를 찾기가 매우 어렵습니다. :-)참고 URL :
반응형
'programing' 카테고리의 다른 글
XSLT에 삽입하는 방법 (0) | 2020.05.07 |
---|---|
pip로 SciPy 설치 (0) | 2020.05.07 |
스크립트 테스트를 위해 PowerShell에서 에코에 해당 (0) | 2020.05.07 |
Task.Start / Wait와 Async / Await의 차이점은 무엇입니까? (0) | 2020.05.06 |
XMLHttpRequest Origin null은 file : /// to file : ///에 대한 Access-Control-Allow-Origin이 허용되지 않습니다 (서버리스). (0) | 2020.05.05 |