SQL group where employee by employee

时间:2010-11-15 17:19:00

标签: sql sql-server tsql aggregate-functions

我有一个返回员工的查询:

Name     Form
Bob       abc
Bob       gfd
Bob       fgf
John      abc
Gavin     abc
Jessie    ala
Jessie    asf

我怎么说如果员工的abc存在,那么结果=是,如果abc不存在那么没有? 我希望看到的是:

Name   Result
Bob    Yes
John   Yes
Gavin  Yes
Jessie  No

1 个答案:

答案 0 :(得分:3)

SQL Server 2000+,使用:

  SELECT e.name,
         COALESCE(MAX(CASE WHEN e.form = 'abc' THEN 'Yes' END), 'No') AS result
    FROM EMPLOYEES e
GROUP BY e.name

如果没有任何表单值匹配“abc”,则MAX部分将返回NULL,COALESCE捕获返回“否”。