为什么这些SQL语句中只有一条有效?
为什么第一条SQL语句不执行,而第二条SQL语句执行 一, 二, 因为您已经为表名为什么这些SQL语句中只有一条有效?,sql,oracle,select,Sql,Oracle,Select,为什么第一条SQL语句不执行,而第二条SQL语句执行 一, 二, 因为您已经为表名employee定义了别名 因此,在WHERE子句中,您需要使用别名,而不是表名,因为它不再有效 SELECT e.employee_id, e.last_name, e.salary as "SALARY" FROM employees e WHERE e.salary > (select avg(salary) from employees) -- ^ ALIAS should be
employee
定义了别名
因此,在WHERE
子句中,您需要使用别名,而不是表名,因为它不再有效
SELECT e.employee_id, e.last_name, e.salary as "SALARY"
FROM employees e
WHERE e.salary > (select avg(salary) from employees)
-- ^ ALIAS should be used, not the tableName
ORDER BY SALARY;
这可能有点离题,但这是一个额外的信息
SQL操作的顺序如下:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
FROM
子句中为表名提供了别名,因此按照操作顺序,下面的任何内容现在都是指给定的别名,而不是表名本身。因为您已经为表名employee
定义了别名
因此,在WHERE
子句中,您需要使用别名,而不是表名,因为它不再有效
SELECT e.employee_id, e.last_name, e.salary as "SALARY"
FROM employees e
WHERE e.salary > (select avg(salary) from employees)
-- ^ ALIAS should be used, not the tableName
ORDER BY SALARY;
这可能有点离题,但这是一个额外的信息
SQL操作的顺序如下:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
由于您在
FROM
子句中为表名提供了一个别名,因此以下操作顺序中的任何内容现在都是指给定的别名,而不是表名本身。要使第一个别名起作用,请用employees替换所有出现的“e”,并删除“e”别名:
要使第一个有效,请将所有出现的“e”替换为employees,并删除“e”别名:
你会喜欢吗?(添加帖子链接)@hims056我喜欢你编辑的查询,但我无法得到任何结果。通过测试这些值:
1370508
和491243
我可以在上得到结果,但不能在这个上得到结果,但我不确定为什么只更改列名不会导致返回结果。哦,实际上问题是:我编辑了Meta的查询。查看以下内容的结果:)@hims056 my bad:)
嘿,您是如何或从何处知道可以转换为链接的别名的,例如ID as[Post Link]
或此ID[User Link]
?上的别名,它们被称为神奇列。有没有你喜欢的?(添加帖子链接)@hims056我喜欢你编辑的查询,但我无法得到任何结果。通过测试这些值:1370508
和491243
我可以在上得到结果,但不能在这个上得到结果,但我不确定为什么只更改列名不会导致返回结果。哦,实际上问题是:我编辑了Meta的查询。查看以下内容的结果:)@hims056 my bad:)
嘿,您是如何或从何处知道可以转换为链接的别名的,例如ID as[Post Link]
或此ID[User Link]
?上的别名,它们被称为神奇列。在它的
SELECT e.employee_id, e.last_name, e.salary as "SALARY"
FROM employees e
WHERE e.salary > (select avg(salary) from employees)
-- ^ ALIAS should be used, not the tableName
ORDER BY SALARY;
select employees.employee_id, employees.last_name, employees.salary as "SALARY"
from employees
where employees.salary > (select avg(salary) from employees)
order by SALARY;