【问题标题】:Replace dot by comma SQL用逗号替换点 SQL
【发布时间】:2020-07-23 20:28:51
【问题描述】:

我有下面显示的代码。十进制字符是“.”。我想把它改成“,”。我试图使用替换,但它不起作用。 你能给我推荐一个替代方案吗?

SELECT
,CASE WHEN t1."EID"='10' THEN cast(t1."PAYVal" as decimal(12,2)) ELSE cast(t1."PAYVal"*t2."EXCValue"  as decimal(12,2)) END as plata_LEI
 ,CASE WHEN t1."EID"='2' 
        THEN cast(t1."PAYVal" as decimal(12,2))
      ELSE CASE WHEN t1."EID"='10' THEN cast(t1."PAYVal"/t3."EXCValue"  as decimal(12,2))
           ELSE cast(t1."PAYVal"*t2."EXCValue"/t3."EXCValue" as decimal(12,2))
           END 
    END as plata_EUR

谢谢。

【问题讨论】:

  • 我删除了不一致的数据库标签。请仅使用您正在使用的数据库进行标记。但是,我确实认为问题出在您使用的 GUI 中。逗号和句点都不用于存储十进制值;他们使用内部格式。
  • 如果这是 Postgres,请使用 to_char() 将数字格式化为可识别区域设置的十进制字符。
  • 这是一个格式问题,应该在客户端应用程序中处理,而不是在 SQL 中。

标签: sql


【解决方案1】:

您不能使用替换功能,因为您将其类型转换为十进制。您需要再次将结果输入大小写为文本并使用如下替换功能,

replace((CASE WHEN t1."EID"='10' THEN cast(t1."PAYVal" as decimal(12,2)) ELSE 
cast(t1."PAYVal"*t2."EXCValue"  as decimal(12,2)) END)::text, '.', ',') as plata_LEI

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-09-05
    • 2021-07-30
    • 2011-09-14
    相关资源
    最近更新 更多