我有一个像这样的@Temp表:
Id TypeId
--------------
14892 | 2
14893 | 3
--------------
我需要像这样一次遍历一条记录:
declare @Id int = (select MIN(Id) from @Temp)
while @Id IS NOT NULL
begin
-- Code here
select @Id = MIN(Id) from @Temp where @Id < Id
end
我还需要使用TypeId这样的记录循环遍历记录:
declare @Id int = (select MIN(Id) from @Temp order by TypeId desc)
因此,当循环记录时,我应该按顺序获得14893然后14892。当然,我在使用order by时遇到此错误:
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
答案 0 :(得分:1)
select ID, min(typeID)
from @Temp
group by ID
答案 1 :(得分:0)
我需要在每条记录上做很多复杂的功能。结果集最小 - 最多10条记录。我知道在tsql中应该避免循环,但有时它只是你的选择。
我最终这样做了:
.php