开发者社区> 问答> 正文

SQL仅在表不为空时才执行过程吗?

我有一个SQL查询,告诉我所有已打开的订单以及何时发货。我想创建一个例行的电子邮件爆炸,提醒人们今天需要装运的所有订单。

这是我的代码


EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'AMT',
    @recipients = 'test@test.com',
    @body = 'results -- some body goes here',
    @subject = 'Sensible subject goes here ',
    @query = 'SELECT Order, ShipByDate, HoursLeft FROM OrdersTable WHERE HoursLeft < 24'

此代码有效。唯一的问题是,当没有少于24小时的订单或结果为空时,它将发送具有相同主题和正文的空表电子邮件。

我想在EXEC行之前有一条if语句,该语句检查在24小时或更短的条件下OrdersTable是否为空。这可能吗?我知道对于exec,您使用IF而不是CASE,但是我不确定如何检查表是否为空。

展开
收起
Puppet 2020-01-03 10:58:23 551 0
1 条回答
写回答
取消 提交回答
  • IF声明不是您想要的吗?

    
    IF (EXISTS (SELECT 1 FROM OrdersTable WHERE HoursLeft < 24))
    BEGIN
        EXEC msdb.dbo.sp_send_dbmail
            @profile_name = 'AMT',
            @recipients = 'test@test.com',
            @body = 'results -- some body goes here',
            @subject = 'Sensible subject goes here ',
            @query = 'SELECT Order, ShipByDate, HoursLeft FROM OrdersTable WHERE HoursLeft < 24';
    END;
    
    2020-01-03 10:58:57
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载