使用IN条件将多个Int转换为sql中的varchar

时间:2017-02-03 17:02:34

标签: sql sql-server sql-server-2008 types

我有两张桌子。

Emp和dept

Emp具有列deptno varchar类型,而dept具有列deptno int类型。

当我使用以下查询时:

select * from emp where deptno in (select deptno from dept)

由于数据类型不同,它不会检索任何数据。

有没有办法将多个deptno从int转换为varchar?

3 个答案:

答案 0 :(得分:1)

您可以使用转换

  select * 
  from emp 
  where CONVERT(INT, deptno) in (select deptno from dept)

答案 1 :(得分:0)

select * 
from emp 
where deptno in 
      (select CAST(deptno AS Varchar(255)) AS deptno 
       from dept)

或根据评论使字段与相关类型相同

答案 2 :(得分:-1)

SELECT
,tableemp.* 
,CAST(dep.deptno AS INT) deptno
FROM deptno dep
INNER JOIN emp 
emp.PK_PrimaryKey = dep.FK_ForeignKey