【发布时间】:2021-06-08 17:28:00
【问题描述】:
我正在尝试将列 REVENUE_MONTH 中的数据转换为 03 而不是 3。我还将将该新列与现有的 REVENUE_MONTH 和 REVENUE_YEAR 列连接起来以获得类似 2020-03-01 而不是 2020 -3-01。以下是我的两种方法,
- 使用 IN
CONCAT(REVENUE_YEAR,'-',CAST(CASE WHEN REVENUE_MONTH IN (1,2,3,4,5,6,7,8,9) THEN CONCAT(0,REVENUE_MONTH) ELSE REVENUE_MONTH END AS NUMBER(38,0)),'-','01')
- 使用长度()
CONCAT(REVENUE_YEAR,'-',CAST(CASE WHEN LENGTH(REVENUE_MONTH)=1 THEN CONCAT(0,REVENUE_MONTH) ELSE REVENUE_MONTH END AS NUMBER(38,0)),'-','01')
不幸的是,他们都在 2020 年 3 月 1 日返回,而不是预期的 2020 年 3 月 1 日
【问题讨论】:
标签: sql concatenation case snowflake-cloud-data-platform string-length