Sql 如何将具有不同数据类型的列上的表连接在一起?

Sql 如何将具有不同数据类型的列上的表连接在一起?,sql,database,ms-access,join,types,Sql,Database,Ms Access,Join,Types,Microsoft Access实现在尝试执行打开某些查询的宏时引发类型不匹配错误。大多数表都链接到SQL Server,我需要将两个具有不同数据类型的表连接在一起 表A: 参考文本 表B: 参考号 我通常希望在SQL Server端纠正这个问题,但是有多个应用程序访问同一个数据库,测试所有应用程序需要相当长的时间。此外,我们正在完全重写这个应用程序的过程中,我今天做的任何工作都是完全扔掉的 如果有一种方法可以在access中实现这种连接,我会节省各种时间…您提到的每个列的数据类型是什么 如果要

Microsoft Access实现在尝试执行打开某些查询的宏时引发类型不匹配错误。大多数表都链接到SQL Server,我需要将两个具有不同数据类型的表连接在一起

表A:
参考文本

表B:
参考号

我通常希望在SQL Server端纠正这个问题,但是有多个应用程序访问同一个数据库,测试所有应用程序需要相当长的时间。此外,我们正在完全重写这个应用程序的过程中,我今天做的任何工作都是完全扔掉的


如果有一种方法可以在access中实现这种连接,我会节省各种时间…

您提到的每个列的数据类型是什么

如果要进行字符串比较,可以执行
Cstr(myNumericColumn)=myStringColumn


或者在数值模式下进行比较,您提到的每个列的数据类型是什么

如果要进行字符串比较,可以执行
Cstr(myNumericColumn)=myStringColumn


或者,要在数值模式下进行比较,请在Access中使用CLng(或Cint)函数将表A的参考值从文本转换为数字


我更愿意在SQLServer中创建表a的视图,以便在Access获取数据之前转换字段的数据类型。您不需要针对其他现有应用程序测试视图。当您的重写使视图不再有用时,只需放弃它

在Access中,您可以使用CLng(或Cint)函数将表A的参考值从文本转换为数字


我更愿意在SQLServer中创建表a的视图,以便在Access获取数据之前转换字段的数据类型。您不需要针对其他现有应用程序测试视图。当您的重写使视图不再有用时,只需放弃它

您可以在标准中进行比较

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cstr(nz([REFNO],""))
您还可以在access中执行passthrough查询,该查询在sql server上执行并仅返回数据

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cast([REFNO] as varchar(25))

HTH

您可以在标准中进行比较

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cstr(nz([REFNO],""))
您还可以在access中执行passthrough查询,该查询在sql server上执行并仅返回数据

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cast([REFNO] as varchar(25))

HTH

如上所述,tableA有一个文本列,tableB有一个整数列。你可以使用上面的任何一个,这取决于你希望进行比较的方式。我不知道你的意思。你能解释一下为什么在你的案例中使用Cstr或Clng没有帮助吗?如上所述,tableA有一个文本列,tableB有一个整数列。你可以使用上面的任何一个,取决于你希望进行比较的方式。我不知道你这是什么意思。您能解释一下为什么在您的案例中使用Cstr或Clng没有帮助吗?我可以通过在SQL DB上创建一个视图来实现这一点,然后将其引入Access并用查询视图替换表。感谢您的快速建议。我可以通过在SQL DB上创建一个视图来实现这一点,然后将其引入Access并用查询视图替换表。谢谢你的快速建议。