我正在使用OPENROWSET函数创建一个SQL作业,以将视图中的数据导出为excel。
我只是想知道是否有一种方法让查询返回错误,如果没有返回数据行,即使查询本身正在正确执行。
我正在寻找的方法是,如果下面的查询要返回0行数据,执行将返回"错误"结果。然而,如果它返回一行或多行数据,它将正常执行。
CustSalesBreakdown是我创建的一个视图,它引入了客户的销售,按月/年分组。作为" Total"是十进制值,我将其转换为float,以便相应地对其进行排序。
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 8.0;Database=E:\Reports\CustSalesBreakdownTest.xls;',
'SELECT * FROM [Test$]')
SELECT
[Account],[Ref#],[CustomerName],[Phone],[Rep],[Period-MTD]
,[Invoices],[Credits],[Total],[FilterDate]
from custsalesbreakdown
where datediff(month,[FilterDate],getdate())=0 and [Rep] = '18'
order by cast([Total] as float) Desc;
此查询成功执行,但由于当时没有数据要返回,因此不返回任何数据。
原因是如果它没有返回任何数据行,我希望作业继续执行另一个步骤(失败 - 转到步骤X),否则如果它返回了值(On Success - Go to Step Y)。
SAMC
答案 0 :(得分:0)
除以零总是会抛出错误。
select 1/count(*) from table where column = 'something'