【发布时间】:2016-09-13 09:12:12
【问题描述】:
我有一个数据库表(例如 Book),其中包含列名(字符不同)部分。我将数据从 csv 导入到该表中。不幸的是,在 CSV 的名称列中,几乎所有行都包含一些特殊字符,例如 / 和 _。
现在我有另一个 csv,其中包含 2 列,它们是导入的无效名称列和作为另一列的正确名称值。我将其导入到我创建的新表中,更新后我将删除该表。当我尝试合并表进行更新时,带有特殊字符的列不显示。
select b.name from Book b JOIN tempBook tb on b.name= tb.invalid_name;
返回 0 行,但手动检查确认这两个值对于几百列是相同的。
我无法删除数据并将数据重新导入到 Book 表,因为它是实时数据并且其他列已被修改。有没有办法查询和匹配两个匹配列都包含特殊字符的表?
编辑
样本数据
Book
HarryN/APotter
tempBook
HarryN/APotter
但之前添加的查询返回 0 个结果。我期待结果是
HarryN/APotter
【问题讨论】:
-
添加一些示例表数据。和预期的结果!
-
在编辑下添加示例数据
-
也许其中一个字段有尾随空格? (或两者)尝试:
... on TRIM(b.name) = TRIM(tb.invalid_name); -
我试过TRIM,我喜欢,还是不行。如果有帮助,该列的类型是字符类型。
-
@user99560:包含特殊字符的是 data 列而不是 name 列。
标签: sql postgresql