ORA 01791 不是 SELECTed 表示式

2021-06-18 19:20:08 字數 473 閱讀 2569

oracle 9i資料庫,執行下面語句出現錯誤「ora-01791: 不是 selected 表示式」:

select distinct t.name from auth_employee t order by t.auth_employee_id asc

原來:select語句中含有distinct關鍵字或者有運算子時,排序用字段必須與select語句中的字段相對應。

網上搜到解釋如下:

在order by中指定多個列,結果將先按照子句中的第一列排序,然後第二個,依此類推。

在select中未出現的列名也可用於order by 子句中,只要table中有就行。

但如果select子句中出現了distinct關鍵字,則只能用出現過的列名,

而且如果select子句中使用了任何運算子,在order by 子句中必須保持和select子句中表示式完全一致,否則出現錯誤:「ora-01791: 不是 selected 表示式」。

ORA 01791 不是SElECTed表示式

ora 01791 不是selected表示式 2008 12 08 15 26 query select distinct dwbm,area no,dwmc,role no,zgbm no from s mtab where role no between 2 and 3 and substr ...

ORA 09817,ORA 01075報錯解決方法

sql conn as sysdba error ora 09817 write to audit file failed.svr4 error 28 no space left on device ora 01075 you are currently logged on sql 檢視硬碟空間發現...

ORA 00354 ORA 00353問題處理

同事電腦上的測試庫,很久沒用,今天啟動的時候沒啟動起來,報錯如下 資料庫版本11.2.0.4,沒開啟歸檔 看到報錯的第一反應就是 open resetlogs。然後去網上搜了一下,大家的思路基本都是一致的。從報錯資訊可以看出是redo的檔案頭有壞塊。因為是測試庫,redo裡的資訊丟了也無所謂 即使是...