select :name from (select empName from Employee);
假设内部查询(select empName from Employee)
给出一个名称'XYZ'。
正如我们所知,内部查询和子查询首先执行,然后我们不直接写
select :name from XYZ
取代select :name from (select empName from Employee)
;
答案 0 :(得分:0)
因为FROM
需要表源而'XYZ'不是表,所以它是一个字符串值,并且在使用时会构成错误的语法。内部查询中的SELECT
语句将作为表源返回。
答案 1 :(得分:0)
我相信,当您查询某些内容时,它会返回一组记录,并且直接使用的XYZ是一个字符串。你不能使用FROM来访问XYZ,你需要一个表。
答案 2 :(得分:0)
冒号通常标记变量。所以说:name ='John',然后是查询
select :name from (select empName from Employee);
将导致n次'John',其中n =表Employee中的记录数。
与
相同select :name from Employee;
子查询
select empName from Employee
没有给出一个名字'XYZ'。它为您提供所有员工的姓名。
如果您想询问select empname from (select empname from employee)
是否与select empname from employee
相同,那么是的,是的。在这个例子中,使用内部查询(调用“派生表”)没有多大意义,但是有更复杂的查询,派生表非常有意义。