the*_*eog 9 ssis dataflow flat-file dataflowtask
我有一个带有数据流的SSIS包,它接受一个ADO.NET数据源(只是一个小表),执行一个select*查询,并将查询结果输出到一个平面文件(我也试过拉动整个表而不是使用SQL select).
问题是数据源提取的是一个Money数据类型的列,如果该值不为零,它就会很好地进入文本平面文件(如'123.45'),但当值为零时,它会显示出来在目标平面文件中为".00".我需要知道如何将前导零回到平面文件中.
我已经尝试了各种数据类型的输出(在平面文件连接管理器中),包括货币和字符串,但这似乎没有任何效果.
我在我的选择中尝试了一个case语句,如下所示:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
Run Code Online (Sandbox Code Playgroud)
(仍然导致'.00')
我尝试过这样的变体:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
Run Code Online (Sandbox Code Playgroud)
(仍然导致'.00')
和:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
Run Code Online (Sandbox Code Playgroud)
(结果为'.0000000000000000000')
这个愚蠢的小问题就是杀了我.任何人都可以告诉我如何将零Money数据类型数据库值作为'0.00'添加到平面文件中?
我有完全相同的问题,而soo的答案对我有用.我将数据发送到派生列转换(在数据流转换工具箱中).我将派生列添加为数据类型Unicode String([DT_WSTR])的新列,并使用以下表达式:
价格<1?"0"+(DT_WSTR,6)价格:(DT_WSTR,6)价格
我希望有所帮助!
| 归档时间: |
|
| 查看次数: |
17951 次 |
| 最近记录: |