首页 文章

使用串联名称过滤结果,但不在表中显示名称

提问于
浏览
0

我需要产生以下内容:

Comp No    Year Purchased
=========================

11111       2008
22222       2007
33333       2008
44444       2006

但是我需要基于串联名称排除一些结果。而且我无法在结果中列出名称。这是我的代码:

SELECT 
Comp_Num,
YEAR (Comp_PurchaseDate) AS 'Year Purchased',
CONCAT(Emp_First, ' ', Emp_Last) as 'Name'
FROM Computer
JOIN Hire using (Comp_Num)
JOIN employee using (Emp_Num)
ORDER BY Comp_Num;

它产生:

Comp No    Year Purchased   Name
================================

11111       2008            AAA
22222       2007            BBB
33333       2008            CCC
44444       2006            DDD

串联名称用于过滤结果,例如:

WHERE ('Name' <> 'AAA' AND
        Name' <> 'DDD')

如何创建串联名称以在不显示列的情况下过滤出结果?没有“作为'name'“时,串联将无法工作。

以及如何使用串联名称进行过滤?我还能在哪里使用吗?还是还有另一个条款?

1 回答

  • 2

    您可以直接在WHERE子句中定义表达式:

    SELECT 
    Comp_Num,
    YEAR (Comp_PurchaseDate) AS `Year Purchased`
    FROM Computer
    JOIN Hire using (Comp_Num)
    JOIN employee using (Emp_Num)
    WHERE (CONCAT(Emp_First, ' ', Emp_Last) <> 'AAA' AND
           CONCAT(Emp_First, ' ', Emp_Last) <> 'DDD')
    ORDER BY Comp_Num;
    

    另请参阅:何时在 MySQL 中使用单引号,双引号和反引号

相关问题