选择语句上的 SQL @@RowCount

Nag*_*aga 0 sql sql-server

我有一个选择语句。我想知道这个 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)

Kri*_*ner 5

@@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)