如何制作DISTINCT CONCAT语句?

Der*_*ose 3 sql oracle

新的SQL开发人员在这里,如何DISTINCT CONCAT发表声明?

这是我没有DISTINCT密钥的声明:

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

这是它的输出:

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 
Run Code Online (Sandbox Code Playgroud)

如果我要使用DISTINCT密钥,则应该只选择11行,但是如果使用,SELECT DISTINCT CONCAT则会出现错误。

Tim*_*sen 5

一种选择是使用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"
Run Code Online (Sandbox Code Playgroud)

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

SELECT DISTINCT t.Employee,
                t."Job Title"
FROM
(
    SELECT CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME) AS "Employee",
           JOBTITLE AS "Job Title" 
    FROM Employee
) t
Run Code Online (Sandbox Code Playgroud)