我有兩個表。使用IN條件將多個Int轉換爲sql中的varchar
僱主和部門。
Emp有列deptno varchar類型,dept有列deptno int類型。
當我使用下面的查詢:
select * from emp where deptno in (select deptno from dept)
它不會因爲獲取不同的數據類型的任何數據。
有沒有什麼辦法將多個deptno從int轉換爲varchar?
我有兩個表。使用IN條件將多個Int轉換爲sql中的varchar
僱主和部門。
Emp有列deptno varchar類型,dept有列deptno int類型。
當我使用下面的查詢:
select * from emp where deptno in (select deptno from dept)
它不會因爲獲取不同的數據類型的任何數據。
有沒有什麼辦法將多個deptno從int轉換爲varchar?
select *
from emp
where deptno in
(select CAST(deptno AS Varchar(255)) AS deptno
from dept)
或使字段類型相同,因爲它們是相關的按評論
您可以使用轉換
select *
from emp
where CONVERT(INT, deptno) in (select deptno from dept)
SELECT
,tableemp.*
,CAST(dep.deptno AS INT) deptno
FROM deptno dep
INNER JOIN emp
emp.PK_PrimaryKey = dep.FK_ForeignKey
這是無效的SQL –
如果你不能加入兩個表的關係,你只需要做select並做一個內部選擇就像上面的人一樣。我只是認爲,因爲它是一個SQL表,它應該有一些關係像PK和FK的,但如果它不存在,那麼做其他人在上面做了什麼。祝你好運 –
修復您的數據!外鍵應該與主鍵具有相同的類型,並且應該聲明它們。對你的問題的簡單回答是'cast()'或'convert()',但是正確的做法是修復數據。 –