可能不可能,但我想我会问;
我想得到Top并将每个保存到一个不同的变量.我知道有3个选择并且可以从第1,第2,第3开始,Top 3但是我希望它可能在一个声明中?
IE
Declare @Var1 as int,
Declare @Var2 as int,
Declare @Var3 as int
select Top 3 [SAVE 3 RETURNED RECORDS INTO VARIABLES] from Table
Run Code Online (Sandbox Code Playgroud)
假设您想要演示目的TOP 3 schema_id FROM sys.objects ORDER BY object_id.
Declare @Var1 as int;
Declare @Var2 as int;
Declare @Var3 as int;
WITH T AS
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY object_id) RN
FROM sys.objects
)
SELECT @Var1 = MAX(CASE WHEN RN = 1 THEN schema_id END),
@Var2 = MAX(CASE WHEN RN = 2 THEN schema_id END),
@Var3 = MAX(CASE WHEN RN = 3 THEN schema_id END)
FROM T
WHERE RN <= 3;
SELECT @Var1, @Var2, @Var3
Run Code Online (Sandbox Code Playgroud)
它用于ROW_NUMBER对行进行编号,然后将它们转换为单行结果,用于分配变量.
| 归档时间: |
|
| 查看次数: |
6130 次 |
| 最近记录: |