首页 > 解决方案 > 连接数字返回不同的值

问题描述

我的代码输出显示了基于代码没有意义的两种不同的东西。我会尽力说明,因为我似乎无法在引导模式下从我的电脑上传图片......

state      cvmo       unique_code     total
IL         201701      95316          80,162.31
IL         201701      91304          21,315.69
IL         201,701     90035          63,989.21
IL         201701      96735          54,557.76

所以你可以看到 cvmo 列有两个不同的值 201701 和 201,701 我不知道为什么。我得到的 IL 总数的输出大约是应有的两倍,所以这让我想知道总数是否因此而乘以 2。此外,每个 unique_code 仅与 201701 或 201,701 配对。

我有一个成员表,其中 cvmo 直接从数据库中获取,并且都是 201701 的形式。

接下来,在总表上使用以下代码:

,case when extract(month from svc_from_dt) < 10
        then trim(extract(year from svc_from_dt)) || '0' || trim(extract(month from svc_from_dt))
        else trim(extract(year from svc_from_dt)) || trim(extract(month from svc_from_dt))
        end as cvmo
/*This is also in the form 201701*/

上面的输出是在 cvmo 和唯一成员键上加入成员表时获取的。

标签: sqlconcatenationteradatasqldatatypes

解决方案


我不知道出了什么问题,但是得到 YYYYMM 的计算太复杂了,改用这个:

to_char(svc_from_dt, 'yyyymm') -- 'YYYYMM' string

推荐阅读