Sql 如何做出清晰的CONCAT语句?
这里是新的SQL开发人员,我如何做一个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
不同的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’)。相同的连接值,所以不能按第一项排序。请选择“不同…”。。。按“员工”下单。