Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何做出清晰的CONCAT语句?_Sql_Oracle - Fatal编程技术网

Sql 如何做出清晰的CONCAT语句?

Sql 如何做出清晰的CONCAT语句?,sql,oracle,Sql,Oracle,这里是新的SQL开发人员,我如何做一个不同的CONCAT语句 以下是我的声明,没有DISTINCT键: COLUMN Employee FORMAT a25; SELECT CONCAT(CONCAT(EMPLOYEEFNAME, ' '), EMPLOYEELNAME) AS "Employee", JOBTITLE "Job Title" FROM Employee ORDER BY EMPLOYEEFNAME; 这是它的输出: Employee Job

这里是新的SQL开发人员,我如何做一个
不同的
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行
如果我使用
选择DISTINCT CONCAT
,我会得到一个错误。

一个选项是使用
分组依据

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

你能解释OP在
SELECT DISTINCT
中看到的错误吗?对于第一个选项,我尝试将
ORDER BY
GROUP BY
一起使用,但现在我得到了一个不同的错误<代码>分组依据
做了我想让它做的事情,这很好,但是我想按照ASC
顺序对名称进行排序。我可以。当选择不同时,只能按顺序使用列表项。考虑(“a”、“bCD”)、(‘ABC’、‘d'’、‘AB’、‘CD’)。相同的连接值,所以不能按第一项排序。请选择“不同…”。。。按“员工”下单。