有条件地插入数据;子查询的问题

时间:2012-11-16 23:20:27

标签: sql-server-2008 ssis conditional-statements

我正在尝试在SSIS OLEDB Source中实现此类功能。

1)计算异常表中的记录 2)如果有例外,请将数据写入excel表 3)如果没有,请写“无可用数据”

我为此做了一个简单的查询,但得到了错误 116,Ms,116,Level 1,State 1,Line 3 当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式。

SELECT CASE WHEN (SELECT COUNT(*) FROM exceptionTable) > 0 THEN
(SELECT * FROM exceptionTable) ELSE 'No Error data available' end

我理解错误消息的内容并知道如何解决它,但我不能想到这个问题的替代解决方案。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

您应该能够使用EXISTS关键字处理此问题。沿着这些方向的东西可以解决这个问题:

if exists(select * from exceptionTable)
    select * from exceptionTable
else 
    select 'No Error data available'

EXISTS关键字指定一个子查询,该子查询可用于测试子查询返回的任何行的存在。如果没有返回任何行,则计算结果为false,并执行ELSE子句。