使用 ETL 和 SQL 将数字读写到 .txt
Read&Write Numbers to .txt using ETL and SQL
我正在从 .xls 文件编写 .txt。
我正在使用 JasperETL 读取 excel 并将数据插入 MSSQL,然后写入 .txt 文件。
在 excel 文件中,我有一个数字(金额),看起来像这样 20.000,00
但有时,由于区域设置,该数字被导入 SQL作为 20,000.00
(分隔符倒转 - ,变为 . 并且 . 变为 ,)。
我的最终格式需要像这样 20000.00
为此,我在 MSSQL.
中使用了 REPLACE 函数
有什么方法可以使用 T-SQL 查询来解决这个问题吗?
我一直在考虑使用旧方法并为每种可能的格式制作 CASES,就像这样。
CASE WHEN sum like 'x.xxx,xx' THEN...
WHEN sum like 'x,xxx.xx' THEN...
但我也在寻找替代品。
提前致谢,
我实际上已经通过 SQL 查询
解决了这个问题
如果有人和我一样,这里是答案
CASE WHEN CHARINDEX('.',@test) > CHARINDEX(',',@test) THEN REPLACE(@test,',','')
WHEN CHARINDEX('.',@test) < CHARINDEX(',',@test) THEN REPLACE(REPLACE(@test,'.',''),',','.')
Replace @test with your column
我正在从 .xls 文件编写 .txt。 我正在使用 JasperETL 读取 excel 并将数据插入 MSSQL,然后写入 .txt 文件。
在 excel 文件中,我有一个数字(金额),看起来像这样 20.000,00
但有时,由于区域设置,该数字被导入 SQL作为 20,000.00
(分隔符倒转 - ,变为 . 并且 . 变为 ,)。
我的最终格式需要像这样 20000.00
为此,我在 MSSQL.
有什么方法可以使用 T-SQL 查询来解决这个问题吗?
我一直在考虑使用旧方法并为每种可能的格式制作 CASES,就像这样。
CASE WHEN sum like 'x.xxx,xx' THEN...
WHEN sum like 'x,xxx.xx' THEN...
但我也在寻找替代品。
提前致谢,
我实际上已经通过 SQL 查询
解决了这个问题如果有人和我一样,这里是答案
CASE WHEN CHARINDEX('.',@test) > CHARINDEX(',',@test) THEN REPLACE(@test,',','')
WHEN CHARINDEX('.',@test) < CHARINDEX(',',@test) THEN REPLACE(REPLACE(@test,'.',''),',','.')
Replace @test with your column