ORA 00923 未找到要求的FROM 關鍵字

2021-07-27 22:57:21 字數 1154 閱讀 9708

在寫查詢前n條記錄時,出現ora-00923的error:

查詢語句:「select top 20 nwid,nwtitle,nw,nwedittime,nwimg from yw_news order by nwedittime desc」

表名與關鍵字之間新增空格了,找不出原因來;而這種存在曲解的查詢語句「select nwid,nwtitle,nw,nwedittime,nwimg

from yw_news where rownum<=20 order by nwedittime desc」卻可以執行無誤。

其他測試情況:

(1)"select top 1 nwid,nwtitle,nw,nwedittime,nwimg from yw_news order by nwedittime desc"

error:the same error

(2)"select nwid,nwtitle,nw,nwedittime,nwimg from yw_news order by nwedittime desc"

excute ok

難倒是top關鍵字出錯?

go on...

(3)"select top 2 * from yw_news order by nwedittime desc"

error:the same error

推斷跟top的記錄條數還有選擇部分欄位or所有字段無關,還可能是什麼地方出錯呢?

難倒跟order by 排序的字段有關??

go on...

(4)「select top 2 * from yw_news order by nwid desc」

error:the same error

nwid為表的索引,據此推斷,跟order by排序的字段無關;那麼還能是什麼原因呢?

總算知道原因了,原來oracle不支援top n 查詢方式,需要用order by和rownum結合實現。。。

修改更新的語句應該為:

select nwid, nwtitle, nw, nwedittime, nwimg

from (select * from yw_news order by nwedittime desc)

where rownum <= 20

order by rownum asc

測試ok。

ORA 00923 未找到要求的FROM關鍵字

問題記錄一下 列轉行listagg 函式 只能在oracle11g以上版本使用,也就是說oracle 10g一下版本不支援該函式。原始sql select a.userid as czry,a.mail addr as yxdz,a.lxdh,listagg b.compname,within gr...

mkvirtualenv 未找到命令的解決方法

公升級python包管理工具pip pip install upgrade pip安裝python的虛擬環境 sudo apt get install python virtualenv一般到了這一步就已經可以成功了,如果沒有成功可能是需要配置環境變數。建立存放虛擬環境的目錄 mkdir home ...

mkvirtualenv 未找到命令的解決方法

1.公升級python包管理工具pip pip install upgrade pip 備註 當你想公升級乙個包的時候 pip install upgrade 包名 2.python虛擬環境安裝 sudo apt get install python virtualenv 上述工具裝好後找不到mkv...