2015-11-26 38 views
0

表“PREIS_TAB”中的列折叠是“E_PREIS decimal(7,2)”。 在下面的示例中,H2-CSVWRITE在CSV输出中创建一个点“。”。 在 “郑树森E-PREIS” -column - 它的工作原理与设计:H2 csvwrite:如何用小数点(7,2)中的逗号替换小数点 - 列

call CSVWRITE ('D:\H2-Database\User-Daten\SQL\H2-DB_01/E_PREIS_out.csv', ' 
       select DATUM   as "Datum" 
        , sum(E_PREIS) as "Summe E-Preis" 
       from PREIS_TAB 
       group by DATUM 
       order by DATUM desc 
      ', 'charset=UTF-8 fieldSeparator=;'); 

但是当我打开的CSV文件用Excel(位置德国)的 “郑树森E-PREIS” -column解释不作为货币(Excel试图转换成不同的日期值) - 因为“。”而不是在该栏中的“,”。

我曾尝试更换,但这个工程的煤焦领域唯一:-(...并与一些CAST-变化 没有成功过。

在计算器论坛在这里我发现下面的技巧,但有仍然是一个SQL-错误 - 显示为“N [*]” - 或者我需要一个完全不同的语法:

 , cast(format((sum(E_PREIS)) , 'N', 'DE-DE') as varchar(20)) 

如何强制H2-CSVWRITE以10进制格式为“E_PREIS”输出列逗号
而不是(!)带小数点?

+0

这可能会实现,以及自动化的,但我没有测试它:'选取基准为“基准”,取代(PREIS“ 。',',')作为“Summe E-Preis”from(select datum,sum(e_preis)from preis_tab group by datum)order by datum desc' –

回答

0

如果您要手动打开该文件,则需要转至Data功能区上的Get External Data选项卡;选择From Text。文本导入向导将打开,并在步骤3中允许您指定值的格式。第3步的高级选项卡允许您指定十进制和千位分隔符。

如果您在VBA打开这个,这个可以用Workbooks.OpenText方法