【发布时间】:2013-01-16 19:58:00
【问题描述】:
我正在比较两个不同数据库中的帐号,以确保两个数据库中都存在该帐号。一个数据库中的帐户字段是nvarchar,另一个是varchar。我做了一个演员,将他们都投射到varchar(12) 并加入他们,看看哪里没有匹配。如果有一个少于 12 个字符的帐号,则认为它不匹配。我假设每个字段中的额外字符导致问题?
table1 - accountnumber(nvarchar(255))
table2 - accountnumber(varchar(20))
select * from
table1
left outer join table2 on table2.accountnumber = table1.accountnumber
在这个示例中,两个表都有一个编号为 12345678 的帐户,但连接不起作用。我不确定是数据类型不匹配还是空格或其他原因。
--添加-- 我应该补充一点,table2 中的数据实际上来自一个以 varchar2(12 字节)形式存储的 Oracle 数据库。我将它导入到 SQL Server 数据库中,并在其中存储为 varchar(20)。我不确定这是否会有所作为。
【问题讨论】:
-
您究竟需要什么帮助?
-
连接两个表 table1 - accountnumber(nvarchar(255)) table2 - accountnumber(varchar(20)) select * from table1 left outer join table2 on table2.accountnumber = table1.accountnumber
-
我们可以假设您使用的是 SQL Server 吗?
-
尝试将第一列转换为 varchar(20)
标签: sql