我在第一个表中有一列integer
,第二列是varcha
。现在我需要比较这两个不同数据类型的变量,如果匹配则检索数据。
请告诉我如何解决这个问题?
答案 0 :(得分:2)
请指定您正在使用的DBMS。
Sql Server? CAST / CONVERT
编辑:
好吧,我看到你提到过上面的Sql * Plus,为了彻底起见,我说甲骨文。 CAST似乎是您正在寻找的。 CONVERT在Oracle中做了一些不同的事情,所以你会做类似
的事情CAST(@YourStringValue AS INTEGER) = @YourOtherIntegerValue
或您要将列强制转换为的任何数据类型,然后将其与其他值进行比较。 语法可能有些偏差,因为我不是Oracle人,但这应该指向正确的方向。
答案 1 :(得分:0)
如果它是关于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
答案 2 :(得分:0)
您可以将varchar转换为int或int转换为varchar,然后进行比较。
铸造的简短例子:
CAST(ColumnName as datatype)as CertainName
此处CertainName
表示您可以显示要显示为新列名称
答案 3 :(得分:0)
如果您正在使用c#java或其他严格类型编程语言,那么您必须将int类型转换为字符串然后您将能够比较它们如果您使用PHP然后不需要转换