我正在尝试连接两个表,但正在使用的列是两种不同的数据类型,表#1 = float和表#2 = varchar(8)。
{{1}}
在这些示例中,我仅获取第445566行的数据
我如何演员/转换???列使所有匹配的行返回数据
答案 0 :(得分:1)
使用
{{helptext[101][0].menuItem}}
答案 1 :(得分:1)
Declare @Table1 table (SomeField1 float)
Insert Into @Table1 values (5585),(985),(445566),(null)
Declare @Table2 table (SomeField2 varchar(8))
Insert Into @Table2 values ('005585'),('000985'),('445566')
Select A.SomeField1
,B.SomeField2
From @Table1 A
Join @Table2 B
on cast(A.SomeField1 as int) = cast(B.SomeField2 as int)
返回
SomeField1 SomeField2
5585 005585
985 000985
445566 445566
答案 2 :(得分:0)
这取决于您的确切加入条件。通常,从数字类型转换为varchar比反之亦然更容易和更安全,因此您可以执行以下操作:
SELECT stuff FROM table1
INNER JOIN table2 ON Convert(varchar(8),table1.field) = table2.field