我不知道如何将我的属性合并到此查询的单个列中

时间:2018-12-05 01:34:10

标签: sql database oracle

我的查询是生成一个Employees列表,这些列表与cinema一起为cinema number 07工作,并将cinema name包括在结果中。将结果排列在ascending order by employee surname中。 Name属性应合并到单个输出列中,并具有合理的标题。 我已经回答了大部分查询,但是我坚持了最后一部分。有人可以帮我这个忙吗?

  SELECT Employee.Cinema_No, Cinema.Cinema_Name, Employee.First_Name, 
  Employee.Surname
  FROM Employee
  INNER JOIN Cinema ON Employee.Cinema_No = Cinema.Cinema_No
  WHERE Employee.Cinema_No = 7
  ORDER BY Surname ASC ; 

3 个答案:

答案 0 :(得分:3)

剩下要做的就是将雇员的名字和姓氏连接到一个栏中。为此,Oracle提供了||运算符(字符串串联)。然后,您可以使用别名AS使用别名来选择合适的列名。

查询:

SELECT 
    Employee.Cinema_No, 
    Cinema.Cinema_Name, 
    Employee.First_Name || ' ' ||  Employee.Surname AS Employee_Full_Name
FROM Employee
INNER JOIN Cinema ON Employee.Cinema_No = Cinema.Cinema_No
WHERE Employee.Cinema_No = 7
ORDER BY Surname ASC ; 

答案 1 :(得分:0)

更新

我最初回答这个问题时没有意识到它针对的是Oracle。因此,如果您碰巧需要对MS SQL Server进行类似的查询,则可以在下面找到原始答案...

我认为您的查询很好。您只需要像下面这样组合员工的姓名...

  SELECT Employee.Cinema_No, 
      Cinema.Cinema_Name, 
      Employee.First_Name + " " + Employee.Surname as FullName
  FROM Employee
  INNER JOIN Cinema ON Employee.Cinema_No = Cinema.Cinema_No
  WHERE Employee.Cinema_No = 7
  ORDER BY Surname ASC ; 

答案 2 :(得分:0)

Concat语法可以为您提供帮助。

定义

  

CONCAT返回与char2串联的char1。 char1和char2都可以   可以是任何数据类型CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或   NCLOB。

SELECT 
  Employee.Cinema_No, 
  Cinema.Cinema_Name, 
  Concat(Employee.First_Name, ' ', Employee.Surname) as Named
FROM 
  Employee
  INNER JOIN Cinema ON Employee.Cinema_No = Cinema.Cinema_No
WHERE 
  Employee.Cinema_No = 7
ORDER BY 
  Surname ASC ;