我有一个数据流的SSIS包,它需要一个ADO.NET数据源(只是一个小表),执行一个select *查询,并将查询结果输出到一个平面文件(我也试过只是拉整个表,而不是使用SQL选择)。如何让SSIS数据流将“0.00”放入平面文件?
问题是数据源拉的是一个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
(仍导致” 0.00' )
和:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
这个愚蠢的小问题(在” 0.0000000000000000000'的结果)是吞噬着我。任何人都可以告诉我如何获得零Money数据类型数据库值为一个平面文件为'0.00'?
我很想知道这个问题的原因 - 我不是真的舒适与派生列黑客。 – PeterX 2013-11-25 08:55:16