【发布时间】:2011-02-21 12:56:23
【问题描述】:
我有一个带有数据流的 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”放入平面文件中?
【问题讨论】:
-
我很想知道这个问题的原因 - 我对 Derived Column hack 不太满意。
标签: ssis flat-file dataflow dataflowtask