declare @top int
set @top = 5
select top @top * from tablename
가능합니까?변수를 동적으로 만들지 않고 SQL Server의 select 문에서 TOP에 변수 사용
또는 이러한 논리에 대한 아이디어 (동적 쿼리를 사용하고 싶지 않습니다)?
declare @top int
set @top = 5
select top @top * from tablename
가능합니까?변수를 동적으로 만들지 않고 SQL Server의 select 문에서 TOP에 변수 사용
또는 이러한 논리에 대한 아이디어 (동적 쿼리를 사용하고 싶지 않습니다)?
예, 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에서도이를 달성 할 수 있다는 것입니다. 당신이 마지막에 SET의 ROWCOUNT 0을 잊어 버린 경우
-- 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
참고, 한계는 .. 계속하고 당신이 당신의 노력
감사합니다 :-) 버그를 찾기 위해 매우 열심히 끝낼 것, 정말 도움이 나에게!!! – Paresh
그것은 완전히 별나다. .. 나는 이것을 알고 있지 않았다. 그리고 나는 이것 위에서 조금만 붙들 게되었다. 고맙습니다 (+1) – Christos