![](/img/trans.png)
[英]Inner join 2 tables based on 2 columns in one and one column in the other
[英]Inner Join two tables when one column is a text and the other is number
我有一个使用一些链接的 ODBC 表的访问程序。 我最初有一个包含以下 INNER JOIN 的查询:
FROM Neptune_FN_Analysis
INNER JOIN Neptune_prem ON Neptune_FN_Analysis.PremID = Neptune_prem.premice_id
这工作得很好,直到列 Neptune_prem.premice_id 从数字更改为文本数据类型。 所以现在我需要一种方法,当一列是数字而另一列是文本时,可以在两列上使用 INNER JOIN。
请记住,我不能简单地更改链接的 ODBC 表正在查看的表中的数据类型。
如果这是不可能的或可笑的代码量,我的另一个逻辑选项是进行查询以创建一个本地表,我可以使用 Neptune_FN_Analysis 表中的所有相同数据进行编辑,并在该查询之后的代码中编辑列我正在加入以输入文本。 如果合理,我宁愿只修改这个 SQL 查询。
首先,我会追踪谁进行了更改并找出原因。 您可能遇到的问题不仅仅是让数字匹配。 这些更改不是无缘无故的,如果它们从数字字段更改为文本字段,可能是因为他们需要将文本数据放入字段中,现在如果你继续这样做,你将根本无法进行比较使用数字。 数据库更改需要考虑其他可能会受到影响的因素,而这一点显然没有。 作为第一步,找出是谁做的以及为什么这样做。
您是否尝试过在 varchar 中使用CAST('abc' AS varchar(5))
数字列?
已编辑
您应该使用clng
将文本转换为数字...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.