我有一个选择语句。我想知道这个 select 语句是否返回任何行。根据记录计数,我想执行一些其他操作。
我尝试使用@@RowCount来获取计数,但它似乎无法与 select 语句一起正常工作。
关于如何使用它的任何建议或我可以在选择后执行我的发布任务的任何其他方式。
select
isnull(TotalHoursWorkedAmount, 0) / 26
from
EmployeeStatus ESI
where
ESI.EmployeeCode = @employee_id
Run Code Online (Sandbox Code Playgroud)
添加另一块
if @@ROWCOUNT=0
SELECT dbo.fxGetAverage(@employee_id)
Run Code Online (Sandbox Code Playgroud)
@@ROWCOUNT 确实适用于选择语句。你没有表现出你的尝试,所以我真的不能说你做错了什么。
但无论如何,这将提供 rowcount 作为示例:
select isnull(TotalHoursWorkedAmount, 0) / 26
from EmployeeStatus ESI
where ESI.EmployeeCode = @employee_id
select @@rowcount
Run Code Online (Sandbox Code Playgroud)
或将其存储在变量中:
declare @myCount int
select isnull(TotalHoursWorkedAmount, 0) / 26
from EmployeeStatus ESI
where ESI.EmployeeCode = @employee_id
set @myCount = @@rowcount
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,如果这只是一个真/假问题 - 而不是x如果y行数,z如果v行数 - 那么你最好做一个存在,除非你真的需要 select 的结果。
if exists (
select 1
from EmployeeStatus ESI
where ESI.EmployeeCode = @employee_id
)
begin
print 'do stuff'
end
Run Code Online (Sandbox Code Playgroud)