在这里是新的SQL开发人员,如何制作DISTINCT CONCAT语句?

这是我没有DISTINCT键的声明:

COLUMN Employee FORMAT a25;
SELECT CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME) AS "Employee", JOBTITLE "Job Title"
FROM Employee
ORDER BY EMPLOYEEFNAME;


这是它的输出:

Employee                  Job Title
------------------------- -------------------------
Bill Murray               Cable Installer
Bill Murray               Cable Installer
Bob Smith                 Project Manager
Bob Smith                 Project Manager
Frank Herbert             Network Specilist
Henry Jones               Technical Support
Homer Simpson             Programmer
Jane Doe                  Programmer
Jane Doe                  Programmer
Jane Doe                  Programmer
Jane Fonda                Project Manager
John Jameson              Cable Installer
John Jameson              Cable Installer
John Carpenter            Technical Support
John Carpenter            Technical Support
John Jameson              Cable Installer
John Carpenter            Technical Support
John Carpenter            Technical Support
Kathy Smith               Network Specilist
Mary Jane                 Project Manager
Mary Jane                 Project Manager

 21 rows selected


如果要使用DISTINCT键,则只能选择11行
如果我使用SELECT DISTINCT CONCAT,则会出现错误。

最佳答案

一种选择是使用GROUP BY

SELECT CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME) AS "Employee",
       JOBTITLE AS "Job Title"
FROM Employee
GROUP BY CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME),
         JOBTITLE
ORDER BY "Employee"


如果您确实要使用DISTINCT,则另一个选择是对当前查询进行子查询:

SELECT DISTINCT t.Employee,
                t."Job Title"
FROM
(
    SELECT CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME) AS "Employee",
           JOBTITLE AS "Job Title"
    FROM Employee
) t

09-30 14:56
查看更多