如何从 SQL 中的子查询调用外部查询中的连接列?

How to call concatenated column in outer query from subquery in SQL?

在我的子查询结果中,我连接了 first_name 和 last_name。在我的外部查询中,我将子查询称为“temp”。由于我在子查询中连接了列,如何在我的外部查询中调用该连接列?

例如,我将员工姓名放在引号内,我知道这就是为什么将“员工姓名”显示为第 1 列值而不是显示实际员工姓名会给出错误结果的原因。

SQL查询:

Select "Employee Name", 
       dept_name, Salary, 
       sum(Salary) OVER (partition by dept_name) as "Total Sal Dept", 
       avg(Salary) OVER (partition by dept_name) as "Avg Sal / Dept"
FROM (   
       Select concat(employees.first_name, ", ",employees.last_name) as "Employee Name", 
              departments.dept_name, 
              Max(salaries.salary) as "Salary"
       FROM departments 
       JOIN dept_manager ON (departments.dept_no = dept_manager.dept_no) 
       JOIN salaries ON (dept_manager.emp_no = salaries.emp_no) 
       JOIN employees ON (salaries.emp_no = employees.emp_no)
       Group by employees.first_name, employees.last_name, departments.dept_name
     ) as temp

Subquery temp result

Outer query with subquery temp result

使用 back-ticks 代替 double-quotes。

select `Employee Name`
from (select 'your, name' AS "Employee Name") temp

dbfiddle.uk

更好的是,在构建输出时避免在列名中放置空格。如果必须用空格格式化它们,请在最后完成。

select employee_name AS "Employee Name"
from (select 'your, name' AS employee_name) temp