2016-10-04 65 views
-2

我有兩個數據庫。 表1(學生)有字段StudentID,EmployeeClass,StudentName。這裏,EmployeeClass是varchar(5)。 表2(員工)具有字段EmployeeID,EmployeeName,Description和EmployeeClass。 Employee類是nvarchar(5)。數據庫值顯示NULL

當我寫選擇查詢爲:

  SELECT S.StudentID, 
       S.EmployeeClass, 
       S.StudentName 
      FROM Student AS S 
LEFT OUTER JOIN Employee AS E 
       ON CAST(S.EmployeeClass AS VARCHAR(5)) = E.EmployeeID 
      WHERE E.Description = 'ABC' 

所有值從員工表中顯示爲空?如何修復它

+1

爲什麼員工類==員工ID?這似乎是不正確的 –

+0

也不要比較數字作爲字符串 - 將字符串轉換爲數字,如果你想比較他們與其他數字。 –

+0

EmployeeID和EmployeeClass都nvarchar(5) – coder

回答

0

我認爲你的script.column中的連接條件是錯誤的'EmployeeClass'在腳本中引用'EmployeeID'。

SELECT S.StudentID, 
       S.EmployeeClass, 
       S.StudentName 
FROM Student AS S 
    LEFT JOIN Employee AS E 
      ON cast(S.EmployeeClass as varchar(5))= E.EmployeeClass 
      AND E.Description = 'ABC' 
+0

將數據類型varchar轉換爲數字時出錯 – coder

+0

這兩個表中的僱員類的類型數據類型是什麼? –

+0

第一個表格它的varchar(5)'=和第二個表格nvarchar(5) – coder