【问题标题】:Issue with join in Teradata加入 Teradata 的问题
【发布时间】:2016-10-06 10:53:10
【问题描述】:

当我在 Teradata 中的两个不同表上执行以下联接时,我遇到了一个非常奇怪的问题。没有返回任何结果,说明table_A和table_B没有共同的值。

SELECT
*
FROM 
table_A a JOIN table_B b ON a.id = b.id;

0 rows returned

但是,当我运行以下两个查询时,我得到的结果表明两个表中的 id 列至少有一行带有“John”。

SELECT
id
FROM table_A
WHERE
id = 'John';

 1 row returned

SELECT
id
FROM table_B
WHERE
id = 'John';

1 row returned

table_A和table_B中所有列的数据类型为null

【问题讨论】:

  • 你可以试试:ON trim(a.id) = trim(b.id); 以确保那里没有任何空白区域吗?另外,您说这些字段的数据类型为NULL?我不相信你可以有一个 NULL 数据类型。 id 字段是 Char() 还是 VARCHAR()?
  • 各个查询返回什么? id的数据类型是什么?
  • 切换到 FULL OUTER JOIN 会返回什么?

标签: teradata jointable


【解决方案1】:

您可以尝试使用以下方法吗:

ON trim(UPPER(table_A.id)) = trim(UPPER(table_B.id))

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 1970-01-01
    • 2019-01-20
    • 2014-12-24
    • 2016-11-07
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多