繁体   English   中英

SQL @@ RowCount在选择语句上

[英]SQL @@RowCount on Select statement

我有一条选择声明。 我想知道此select语句是否返回任何行。 基于记录数,我想执行一些其他操作。

我尝试使用@@RowCount来获取计数,但它似乎无法与select语句一起正常工作。

选择后如何使用该建议或我可以执行发布任务的其他任何方式。

select    
    isnull(TotalHoursWorkedAmount, 0) / 26  
from    
    EmployeeStatus ESI
where   
    ESI.EmployeeCode = @employee_id

添加另一块

if @@ROWCOUNT=0
    SELECT dbo.fxGetAverage(@employee_id)  

@@ROWCOUNT 确实适用于select语句。 您没有表现出您的尝试,所以我不能说您做错了什么。

但是无论如何,这将以行数为例:

select    isnull(TotalHoursWorkedAmount, 0) / 26  
    from    EmployeeStatus ESI
    where   ESI.EmployeeCode = @employee_id

select @@rowcount

或将其存储在变量中:

declare @myCount int

select    isnull(TotalHoursWorkedAmount, 0) / 26  
    from    EmployeeStatus ESI
    where   ESI.EmployeeCode = @employee_id

set @myCount = @@rowcount

就像其他人所说的,如果这只是一个对/错问题-相对于x如果y行数, z如果v行数-那么最好做一个存在, 除非您实际上需要选择

if exists (    
    select  1
    from    EmployeeStatus ESI
    where   ESI.EmployeeCode = @employee_id
)
    begin
      print 'do stuff'
    end

如果由于某种原因您无法使@@rowcount工作,则可以使用此查询来检查是否得到任何结果。 使用if语句。

if not exists(select isnull(TotalHoursWorkedAmount, 0) / 26  from EmployeeStatus ESI where ESI.EmployeeCode = @employee_id)
     begin
          SELECT dbo.fxGetAverage(@employee_id) 
     end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM