如何在SQL查询的where条件下比较两种不同的数据类型变量

如何在SQL查询的where条件下比较两种不同的数据类型变量,sql,Sql,我在第一个表中有一列是整数,第二列是varcha。现在我需要比较这两个不同数据类型的变量,并检索匹配的数据 请帮助我如何处理这个问题?请指定您正在使用的DBMS Sql Server? 编辑: 好吧,我看到你提到了Sql*Plus,上面我说Oracle是为了彻底。演员似乎就是你要找的。CONVERT在Oracle中执行一些不同的操作,因此您可以执行以下操作 CAST(@YourStringValue AS INTEGER) = @YourOtherIntegerValue 或者您希望将列强制

我在第一个表中有一列是整数,第二列是varcha。现在我需要比较这两个不同数据类型的变量,并检索匹配的数据


请帮助我如何处理这个问题?

请指定您正在使用的DBMS

Sql Server?

编辑:

好吧,我看到你提到了Sql*Plus,上面我说Oracle是为了彻底。演员似乎就是你要找的。CONVERT在Oracle中执行一些不同的操作,因此您可以执行以下操作

CAST(@YourStringValue AS INTEGER) = @YourOtherIntegerValue

或者您希望将列强制转换为的任何数据类型,然后将其与其他值进行比较。语法可能有点不对劲,因为我不是Oracle的人,但这应该为您指明了正确的方向。

如果是关于MS SQL的,那么它将隐式地为您转换这些语法,无需转换或转换

declare @IntVariable int
set @IntVariable = 3

declare @VarcharVariable varchar(10)
set @VarcharVariable = '3'

select case when @IntVariable = @VarcharVariable then 1 else 0 end

您可以将varchar强制转换为int或int强制转换为varchar,然后进行比较

铸造的简短示例:

CAST(ColumnName as datatype)as CertainName

这里的CertainName意味着你可以显示为你的新列名

如果你使用的是c java或其他严格类型的编程语言,那么你必须将int类型转换为string,然后你可以比较它们如果你使用的是PHP,那么不需要转换

你使用的是哪种RDBMS?不同系统之间的转换/转换函数不同。我使用了这个函数,但它不起作用,因为缺少了一个erros表达式