2016-10-10 85 views
0

喜逢之一,當我EXCUTE 我有無效的列名稱表達式2,表達式3我有這樣的查詢代碼從數據庫中檢索數據,Expr4的SQL Server:無效的列名稱使用別名時

SELECT Isnull(EMP_NUM, 0)   AS Expr1, 
     Isnull(Full_name, 0)   AS Expr2, 
     Isnull(Mother_Name, 0)  AS Expr3, 
     Isnull(Date_of_Birth, 0)  AS Expr4, 
     Isnull(Province_of_birth, 0) AS Expr5, 
     Isnull(Job, 0)    AS Expr6 
FROM [EMPLOY Main Table] 
WHERE (Expr2 LIKE N'%' + @Full_name + N'%') 
     OR (@Full_name IS NULL) 
     OR (Expr3 LIKE N'%' + @Mother_Name + N'%') 
     OR (@Mother_Name IS NULL) 
     OR (Expr4 LIKE N'%' + @Date_of_Birth + N'%') 
     OR (@Date_of_Birth IS NULL) 
+2

你不能在where子句中使用別名。請使用列名稱。只有訂購你可以別名 – Hiten004

+0

@ Hiten004你可以告訴我怎麼做 –

+0

@Prdp你建議做什麼? –

回答

0

這裏

SELECT ISNULL(EMP_NUM, '0') AS Expr1 
    , ISNULL(Full_name, '0') AS Expr2 
    , ISNULL(Mother_Name, '0') AS Expr3 
    , ISNULL(Date_of_Birth, '0') AS Expr4 
    , ISNULL(Province_of_birth, '0') AS Expr5 
    , ISNULL(Job, '0') AS Expr6 
    FROM   [EMPLOY Main Table] 
    WHERE 
     (Full_name LIKE N'%' + @Full_name + N'%') 
     OR 
     (@Full_name IS NULL) 
     OR 
     (Mother_Name LIKE N'%' + @Mother_Name + N'%') 
     OR 
     (@Mother_Name IS NULL) 
     OR 
     (Date_of_Birth LIKE N'%' + @Date_of_Birth + N'%') 
     OR 
     (@Date_of_Birth IS NULL) 
+0

該代碼返回來自DB –

0

也許你需要的代碼,將與變量列表底部的腳本來改變你的where子句像

SELECT ISNULL(EMP_NUM, 0) AS Expr1 
    ,ISNULL(Full_name, 0) AS Expr2 
    ,ISNULL(Mother_Name, 0) AS Expr3 
    ,Date_of_Birth AS Expr4 
    ,ISNULL(Province_of_birth, 0) AS Expr5 
    ,ISNULL(Job, 0) AS Expr6 
FROM [EMPLOY Main Table] 
WHERE (Full_name LIKE N'%' + @Full_name + N'%' OR @Full_name IS NULL) and 
(Mother_Name LIKE N'%' + @Mother_Name + N'%' OR @Mother_Name IS NULL) and 
    (Date_of_Birth = @Date_of_Birth OR @Date_of_Birth IS NULL) 
+0

的所有數據我現在嘗試... –