我有一个带有数据流的 SSIS 包,它采用 ADO.NET 数据源(只是一个小表),执行一个 select * 查询,并将查询结果输出到一个平面文件(我也试过只拉整个表并且不使用 SQL 选择)。
问题是数据源提取了一个 Money 数据类型的列,如果值不为零,它会很好地进入文本平面文件(如 '123.45'),但是当值为零时,它会显示在目标平面文件中作为“.00”。我需要知道如何让前导零回到平面文件中。
我已经为输出尝试了各种数据类型(在平面文件连接管理器中),包括货币和字符串,但这似乎没有效果。
我在我的选择中尝试了一个 case 语句,如下所示:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(仍然导致“.00”)
我已经尝试过这样的变化:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(仍然导致“.00”)
和:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
(结果为'.0000000000000000000')
这个愚蠢的小问题要了我的命。谁能告诉我如何将零 Money 数据类型数据库值作为“0.00”放入平面文件中?