【问题标题】:Number column to Var char column without returning decimal value数字列到 Varchar 列而不返回十进制值
【发布时间】:2020-12-14 15:04:21
【问题描述】:

以下表达式返回十进制值

TO_VARCHAR(COLUMN_NAME + 10) 

假设列的值为 80 ,它是 90.00000 并且源中的 COLUMN_NAME 是数字

添加或更改什么以将返回值作为 varchar 作为 90 而不是 90.0000

【问题讨论】:

    标签: sql string snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    我只会先将总和转换为整数,然后再转换为 varchar。

    SELECT (COLUMN_NAME + 10)::INT::VARCHAR;
    

    您也可以在此处使用 SQL 格式模型:https://docs.snowflake.com/en/sql-reference/sql-format-models.html,但我发现它们很难使用,因为您首先需要知道结果的固定小数位。例如,

    SELECT TO_VARCHAR('40' + 10, '99');
    

    SELECT TO_VARCHAR('40' + 10, '999');
    

    两者都有效,但这不起作用:

    SELECT TO_VARCHAR('400' + 10, '99');
    

    所以,如果我是你,我会坚持第一个,这样更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多