在没有循环的情况下选择TOP 2结果变量

jue*_*n d 3 sql sql-server variables sql-server-2008

我想将前2个结果存储在2个变量中.

create table t(id int);
insert into t (id) values (1),(2),(3),(4);

declare @id1 int
declare @id2 int

select top 2 @id1 = first id, 
             @id2 = next id
from t

SQLFiddle

我可以在一个查询中不使用循环吗?

Kaf*_*Kaf 5

declare @id1 int,@id2 int

;with cte as (
  select top (2) id
  from t
  order by id
)
select @id1 = min(id), @id2 = max(id)
from cte

select @id1,@id2
Run Code Online (Sandbox Code Playgroud)

小提琴演示