SQL Server:使用别名时无效的列名称

时间:2016-10-10 16:27:32

标签: sql asp.net sql-server

嗨每一个我都有这个查询代码,以便在我执行时从数据库中检索数据 我的列名Expr2,Expr3,Expr4

无效
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 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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)