[SQL] 그것은 동적하지 않고 SQL Server의 select 문에서 TOP과 함께 사용 변수 [중복]
SQL그것은 동적하지 않고 SQL Server의 select 문에서 TOP과 함께 사용 변수 [중복]
declare @top int
set @top = 5
select top @top * from tablename
그것은 수 있습니까?
또는 이러한 논리에 대한 어떤 생각 (내가 동적 쿼리를 사용하지 않음)?
해결법
-
==============================
1.예, SQL 서버 2005은 최고 절에 변수를 사용하는 것이 가능하다.
예, SQL 서버 2005은 최고 절에 변수를 사용하는 것이 가능하다.
select top (@top) * from tablename
-
==============================
2.SQL Server 2005는 실제로 변수, 표현식 또는 문을 사용하여, 우리가 TOP 절을 매개 변수화 할 수 있습니다. 당신이 할 수있는 그래서 일이 같은 :
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
출처
-
==============================
3.이 스레드에서 몇 가지 답변이 있기 때문에 2005 년 이후, 당신은 그것을 할 수 있습니다.
이 스레드에서 몇 가지 답변이 있기 때문에 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을 잊지 .. 당신이 버그를 찾을 열심히로 끝날 것인지 :-)
from https://stackoverflow.com/questions/1927450/use-variable-with-top-in-select-statement-in-sql-server-without-making-it-dynami by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 하나의 ID 열이있는 테이블에 행을 삽입 만 (0) | 2020.06.01 |
---|---|
[SQL] 3에서 6 무작위 int 값을 생성 (0) | 2020.06.01 |
[SQL] 이 관계형 데이터베이스 모델 주소 정보에 좋은 방법인가? (0) | 2020.06.01 |
[SQL] 표준 조인을 대하면 SQL 하위 쿼리를 사용 하는가? (0) | 2020.06.01 |
[SQL] 명령 줄에서 SQLPLUS 문 (0) | 2020.06.01 |