在甲骨文中"AS"别名不起作用



只想知道Oracle为什么不允许在Query中使用"AS"别名。在我的项目中,我返回的所有查询都有别名关键字"AS"。

For.eg;

Select t1.id,t2.name from Table1 As t1 ,Table2 t2 
on
  t1.id =t2.id

以上查询在所有服务器中运行,如PostgreSQL、Microsoft SQL服务器,但在Oracle中不起作用由于别名"As",显示错误"Command not exists"。如果我删除,它就会运行。

只是想知道为什么Oracle Server会这样?我想使用"AS"别名运行查询。

虽然Oracle允许在定义列别名时使用AS,但不允许在定义表别名时使用AS。这就是Oracle的工作方式。

您可以将as(可选)用于列名中的别名,但不能用于表。在别名中使用as是Microsoft的标准,而ORACLE支持ANSI SQL语法,而在别名中用as不是标准。

根据这个和这个,它应该是ISO SQL92的一部分。也许Oracle没有实现它是因为向后兼容性。

在Oracle中,"AS"、"JOIN"、"COMMIT"、"MODEL"等关键字仍然可以用作对象名称。所以你可以写这样的东西:

select J.COMMIT AS
from JOIN J;

这将从名为"JOIN"的表中选择名为"COMMIT"的列,该列将别名为"AS"。