5

select ステートメントでサブクエリを使用しているクエリを実行しようとしています。
これは機能します:

select   
(select sysdate from dual),   
(select 'municipality' from dual),  
(select count(*) from municipality)  
from dual;  

しかし、結果の列名は醜いので、列のエイリアスを追加したいと思います。

次のクエリを実行しようとしています。

select   
(select sysdate from dual) as sysdate,   
(select 'municipality' from dual) as tablename,  
(select count(*) from municipality) as count  
from dual;

これは、ORA 00923: From keyword not found where expected エラーで失敗します。どういうわけか、私は何かが欠けています。

助言がありますか?

ありがとう。

4

2 に答える 2

2

二重引用符で囲んでみてください。

select
   (select sysdate from dual) as "sysdate",
   (select 'municipality' from dual) as "tablename",
   (select count(*) from municipality) as "count"
from dual;

SysDate予約キーワードです。ただし、COUNTは集計関数ですが、使用は許可されています。

于 2013-02-14T13:29:01.527 に答える
1

コードで発生した唯一のエラーは、キーワード sysdate および count をエイリアスとして使用していたことです。これはノーノーです... AS の使用もオプションです。これは意図したとおりに機能します。

select   
 (select sysdate from dual)  s_date,            -- NOT sysdate
 (select 'municipality' from dual)  tablename,  
 (select count(*) from dual) as cnt             -- NOT count
 from dual;

count を使用しても問題ありませんが、実際にはお勧めできません。プロはキーワードを使用しません。

于 2013-02-14T14:20:57.543 に答える