我想使用if- data语句来决定我必须在哪个位置导出数据。我的案例是:
解决办法可能是IF..ELSE吐露。问题是,如果计算记录的计数,就会得到行集变量,而不能将其与标量变量进行比较。
@RECORDS =
SELECT COUNT(id) AS IdsCount
FROM @final;
IF @RECORDS <= 20 THEN //generate dummy empty file
OUTPUT @final_result
TO @EMPTY_OUTPUT_FILE
USING Outputters.Text(delimiter : '\t', quoting : true, encoding : Encoding.UTF8, outputHeader : true, dateTimeFormat : "s", nullEscape : "NULL");
ELSE
OUTPUT @final_result
TO @OUTPUT_FILE
USING Outputters.Text(delimiter : '\t', quoting : true, encoding : Encoding.UTF8, outputHeader : true, dateTimeFormat : "s", nullEscape : "NULL");
END;发布于 2017-10-31 10:30:19
used的IF语句目前仅在编译时使用.所以你可以做这样的事
IF FILE.EXIST() THEN但是,如果要根据记录的数量输出不同的文件,则必须在SDK/CLI级别编写它:
第一个作业写入临时文件输出(可能是包含行数的状态文件)。然后检查(例如,在Powershell中)该文件是否为空(或您希望使用的任何条件),如果没有,则复制结果,否则将创建空输出文件。
https://stackoverflow.com/questions/46588825
复制相似问题