带有显式列列表和星号 (*) 的 SELECT 语句

Mar*_*icz 7 oracle

SQL Server 允许使用类似于以下内容的 SELECT 语句:

SELECT FirstName, LastName, City, *
FROM dbo.Customers
Run Code Online (Sandbox Code Playgroud)

当我尝试在 Oracle 数据库上执行此类查询时,出现以下错误:

ORA-00936: 缺少表达式
00936. 00000 - “缺少表达式”

Oracle 不支持此类查询吗?

Jac*_*las 10

仅当您使用表名作为星号前缀时:

select dummy, dual.* from dual;

DUMMY DUMMY 
----- ----- 
X     X     
Run Code Online (Sandbox Code Playgroud)

这限制了它用于不使用using语法连接的表:

select dummy, d1.* from dual d1 join dual d2 using(dummy)

SQL Error: ORA-25154: column part of USING clause cannot have qualifier
25154. 00000 -  "column part of USING clause cannot have qualifier"
*Cause:    Columns that are used for a named-join (either a NATURAL join
           or a join with a USING clause) cannot have an explicit qualifier.
*Action:   Remove the qualifier.

select d2.dummy, d1.* from dual d1 join dual d2 on(d1.dummy=d2.dummy);

DUMMY DUMMY 
----- ----- 
X     X     
Run Code Online (Sandbox Code Playgroud)