查询结果的 IF 语句

IF statement on query results

我每天都会通过电子邮件发送以下查询的结果,其中 90% 的时间都是空的。我想添加一个 if 语句来仅发送电子邮件 If (resulting row count>0)

 Select Orders.TransactionNumber, Orders.RepNumber, Orders.CustomerID,
        Orders.ShipToId, orders.ItemCode, Orders.Quantity, Orders.ReceivedDate, 
        Orders.TransmitStatus from (select TransactionNumber from Orders
 group by TransactionNumber
 having count (TransactionNumber = 1) as transa

 inner join Orders on Orders.TransactionNumber = transa.TransactionNumber

 where ItemCode = 9987 and ReceivedDate > DateAdd(day, -4, GetDate())
 order by ReceivedDate

在此处添加if (counted rows>0 send the email else end)

你不能申请:

Orders.TransactionNumber != ""

到您的 where 语句以获得不为空的查询结果?

在名为 @@ROWCOUNT 的全局变量中捕获 SQLServer 中的任何 DML(SELECT,插入,更新)操作。在你的情况下也使用它。

 Select Orders.TransactionNumber, Orders.RepNumber, Orders.CustomerID,
 Orders.ShipToId, orders.ItemCode, Orders.Quantity, Orders.ReceivedDate, 
 Orders.TransmitStatus from (select TransactionNumber from Orders
 group by TransactionNumber
 having COUNT (TransactionNumber)=1) as transa

 Inner join Orders on Orders.TransactionNumber=transa.TransactionNumber

 where ItemCode=9987 and ReceivedDate > DateADD (day, -4, GetDate() )
 Order by ReceivedDate

IF @@ROWCOUNT > 0
PRINT 'send mail<your logic goes here>'