2

Transact-sqlで完全に機能するSQLステートメントを次に示します。

SELECT a.Account_ID, a.First_Name, a.Last_Name, m.number
FROM Account a,
(SELECT R_Account_ID, COUNT(Notification_ID) AS number
FROM Rcv_Send_Event_Notf 
GROUP BY R_Account_ID) m
WHERE a.Account_ID = m.R_Account_ID

しかし、Oracleにはありません。m.numberそれはほとんどのselectステートメントで不平を言っています。number3行目のASのおかげでもあると思います。

無効なuser.table.column、table.column、または列の指定...

Oracleで列のエイリアスを作成する別の方法はありますか?

助けてくれてありがとう

4

3 に答える 3

5

NumberはOracleのキーワードであるため、二重引用符を使用せずにエイリアスとして使用することはできません。ほとんどの人は、それを別名、ピリオドとして使用しないようにアドバイスします。

> select d.number from (select sysdate as number from dual) d

Error starting at line 3 in command:
select d.number from (select sysdate as number from dual) d
Error at Command Line:3 Column:9
Error report:
SQL Error: ORA-01747: invalid user.table.column, table.column, or column specification
01747. 00000 -  "invalid user.table.column, table.column, or column specification"

> select d.number from (select sysdate as "number" from dual) d

Error starting at line 2 in command:
select d.number from (select sysdate as "number" from dual) d
Error at Command Line:2 Column:9
Error report:
SQL Error: ORA-01747: invalid user.table.column, table.column, or column specification
01747. 00000 -  "invalid user.table.column, table.column, or column specification"

> select d."number" from (select sysdate as "number" from dual) d
number                    
------------------------- 
07-MAY-12 12:32:28 PM     
于 2012-05-07T16:32:55.337 に答える
1

Oracleは、「number」という名前がキーワードであるため、気に入らない可能性があります。クエリを「煮詰め」て「数値」に名前を変更しましたが、機能しているようです

SELECT m.number_col
FROM dual a,
(SELECT   123 AS number_col
FROM dual ) m

WITH句を使用することもできます。

 WITH m AS
(SELECT  sysdate  as number_col
FROM dual )
SELECT m.number_col
FROM dual a, m
于 2012-05-07T16:34:05.837 に答える
1

私が何かを見逃していなければ、あなたは同じものを作ることができます

select a.account_ID, a.First_Name, a.Last_Name, count(*)
from Account a
inner join RCV_Send_Event_Notf m on a.Account_Id = m.R_Account_Id
Group by a.account_Id, a.First_Name, a.Last_Name;
于 2012-05-07T16:31:21.163 に答える