1
if-elseステートメントを使用して、データをエクスポートする場所を決めます。 私の場合は、次のとおりです。私はAzureブロブストレージからいくつかのファイル(それはファイルが存在しないことも可能です!!)を抽出Azureデータレイク - 条件
- 。
- ファイルセットのレコード数を計算します。
- レコードの数が> 20の場合、特定のレポートの場所にファイルをエクスポートします
- ファイルセットにレコードがない場合、既存のレポートを置き換える必要がないため、空のファイルを別の場所に出力する必要があります。空のレポート。
解決策は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;
しようとしているのは、行セット変数をスカラー変数として使用することです。今のところusqlでは不可能です。 [this](https://stackoverflow.com/q/40094944/2417043)と[this](https://stackoverflow.com/q/41394628/2417043)の質問を参照してください。 – arghtype