2017-02-03 1 views
0

私は2つのテーブルを持っています。IN条件を使用してSQLで複数のIntをvarcharに変換する

epおよびdept

Empには列deptno varchar型があり、deptには列deptno int型があります。

私は次のクエリを使用します。それが原因で異なるデータ型のデータを取得しません

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

を。

複数のdeptnoをintからvarcharに変換する方法はありますか?

+3

があなたのデータを修正する変換使用することができます!外部キーは、主キーと同じ型を持つ必要があり、宣言する必要があります。あなたの質問に対する単純な答えは 'cast()'または 'convert()'ですが、正しいことはデータを修正することです。 –

答えて

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

またはフィールドと同じタイプにする彼らは、コメント

1

ごとに関連しているとあなたは

select * 
    from emp 
    where CONVERT(INT, deptno) in (select deptno from dept) 
-1
SELECT 
,tableemp.* 
,CAST(dep.deptno AS INT) deptno 
FROM deptno dep 
INNER JOIN emp 
emp.PK_PrimaryKey = dep.FK_ForeignKey 
+1

これは有効ではないSQL –

+0

あなたが関係を持つ2つのテーブルに参加できない場合は、選択して上記のようなインナーセレクトを実行するだけです。私はそれがSQLテーブルなので、PKとFKのような関係があるはずだと思っていましたが、そこになければ他の人が何をしているのかをしてください。がんばろう –

関連する問題