我们可以通过使用来尝试获得最大年龄
SELECT TOP 1 age FROM Head1 ORDER BY Age DESC
Run Code Online (Sandbox Code Playgroud)
但我尝试在SQL Server中使用while循环
码
declare @a int, @m int, @maxo int;
set @maxo = 0;
while(@a<10)
begin
select name, @m = age from head1 where ID = @a;
if @m>@maxo
@maxo = @m;
set @a=@a+1;
end
print @maxo
Run Code Online (Sandbox Code Playgroud)
错误
消息141,级别15,状态1,行5
为变量赋值的SELECT语句不能与数据检索操作组合.消息102,级别15,状态1,行7
'@maxo'附近的语法不正确.
我有点被困在这里.请帮帮人......
有两个问题:
问题1:
您获得的错误是自解释的,即,在将值分配给变量时,您无法选择列.
你可以像这样解决它:
select @name = name, @m = age from head1 where ID = @a;
Run Code Online (Sandbox Code Playgroud)
问题2:
在这里我不认为你需要该查询来从你的表中找到最大年龄.你可以简单地使用max()函数从你的表中找到这样的最大年龄
SELECT Name, Age FROM Head1 WHERE Age = (SELECT MAX(Age) FROM Head1)
Run Code Online (Sandbox Code Playgroud)
使用循环是低效的,如果你的表很大,它将产生性能瓶颈.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |