合并添加额外字符

问题描述

我有以下值:

table_1:

value
123

table_2:

value
456


select 
t1.value as t1_value,t2.value as t2_value,coalesce(t1.value,t2.value,null) as coalesced_value
from
    table_1 as t1
left join
    table_2 as t2
    on
      t1.it_does_not_matter = t2.it_does_not_matter


Output:

t1_value     t2_value     coalesced_value
123          456          123.00000

为什么我最后有额外的 0 值?我如何做到这一点,所以我的输出是这样的:

Desired Output:
t1_value     t2_value     coalesced_value
123          456          123

解决方法

对于初学者来说,合并到 NULL 是没有意义的,除非你只是表明它是神奇的第三个值。

coalesce(t1.value,t2.value,null)

但在雪花中

WITH a as ( select 123::number a ),b as (select 456 as b)
SELECT a.a,b.b,coalesce(a.a,null)
FROM a LEFT JOIN b ON true;    

给出:

A   B   COALESCE(A.A,B.B,NULL)
123 456 123

将第二个改为浮动

WITH a as ( select 123::number a ),b as (select 456.1 as b)
SELECT a.a,null)
FROM a LEFT JOIN b ON true;    

给出:

A   B       COALESCE(A.A,NULL)
123 456.1   123.0

但将浮点数转换为双精度

WITH a as ( select 123::number a ),b as (select 456.1::double as b)
SELECT a.a,NULL)
123 456.1   123

所以我怀疑你的两个表的类型是什么..如果你希望它总是一个数字,只需进行合并即可。

coalesce(a.a,null)::number

如果您的数据是变体,而其他列是浮动的,因此它会将其全部视为浮动,但您只看到一行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...