如何根据别名而不是列名进行过滤?

时间:2014-05-11 16:24:59

标签: sql database informix sql-like

如果我有这样的查询::

 SELECT a.emp_num, a.emp_num ||'-'|| a.name AS emp_name
 FROM Employees a 
 WHERE emp_name LIKE '' //Error

如何根据emp_name而不是name

进行过滤

1 个答案:

答案 0 :(得分:2)

您可以将查询包装在另一个SELECT中,并使用emp_name中的第一个SELECT的别名作为其中的字段名称:

SELECT x.* 
FROM (SELECT a.emp_num
           , a.emp_num ||'-'|| a.name AS emp_name
      FROM Employees a 
) x
WHERE x.emp_name LIKE '' 

如果您不想使用子公司外SELECT,那么您可以在您WHERE子句中传递整个连接字符串:

SELECT a.emp_num
     , a.emp_num ||'-'|| a.name AS emp_name
FROM Employees a 
WHERE a.emp_num ||'-'|| a.name LIKE ''