【发布时间】:2013-04-03 14:40:19
【问题描述】:
如果 emp 表包含 14 行,当我执行 SELECT 5 FROM EMP 时为什么它显示以下输出而不是显示错误
5
-----
5
5
5
5
5
5
5
5
5
5
5
5
5
5
为什么它只是将 5 作为列别名,并将结果重复行作为数字 5 提供到表的行数。
另一方面,它不起作用
SQL> select something from emp;
select something from emp
*
ERROR at line 1:
ORA-00904: "SOMETHING": invalid identifier
【问题讨论】:
-
对我来说似乎是有效的 sql,你有什么问题?
-
是的,但我的疑问是,emp 表中不存在任何列
5。然后,为什么它被执行并显示这个输出。这背后的逻辑是什么。 ? -
您不是在选择列,而是在选择一个值。我认为在 oracle 中,如果您编写
SELECT "5" FROM emp,则 qoutes 会强制引擎将 5 解释为列名,那么这将是一个错误 -
你可以在那个地方放几个东西。其中包括字符串 (
"something")、列名 (something)(如果它们不存在则会给出错误)、数字 (5) 等。逻辑是事物(一堆字母,一个数字)被区别对待...