内心疑问

时间:2014-06-19 13:32:36

标签: sql

select :name from (select empName from Employee); 

假设内部查询(select empName from Employee)给出一个名称'XYZ'。

正如我们所知,内部查询和子查询首先执行,然后我们不直接写

select :name from XYZ取代select :name from (select empName from Employee);

3 个答案:

答案 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

没有给出一个名字'XY​​Z'。它为您提供所有员工的姓名。

如果您想询问select empname from (select empname from employee)是否与select empname from employee相同,那么是的,是的。在这个例子中,使用内部查询(调用“派生表”)没有多大意义,但是有更复杂的查询,派生表非常有意义。