我需要加入
列上的两个表,在一个表中定义为字符串,在另一个表中定义为整数。在两列中,实际存储的数据都是整数。这是我设计的 - 我无法更改。
所以当我加入 MySQL
时很好 - 它会默默地进行转换。 PostgreSQL
提示。有 CAST
运算符,我可以将其添加到查询中以将 strings 转换为 integers,但 CAST 函数在不同的 RDBMS 中定义不同。
我能否按照在所有(或许多)RDBMS 中工作的方式编写此查询?或者,是否有数据库抽象层可以为我做这件事? ADODB
已在项目中使用,但我看不出它是否以及如何帮助解决这个问题。
谢谢。
最佳答案
由于数据类型的原因,您不能以相同的方式为每个数据库CAST
INT
,因此您可以将数字字段转换为CHAR
:
CAST(a.numeric_Field AS CHAR(5))` = b.stringfield
这将适用于 Postgresql、MySQL、SQL Server,其他不确定。
关于mysql - sql join on string = integer 以在任何 RDBMS 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27644811/