亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用sql order by 和rownum 查詢的問題,例子如下!求大神指點

使用sql order by 和rownum 查詢的問題,例子如下!求大神指點

守著一只汪 2021-08-24 19:15:46
select * from (select * from Ft_Sms_Interact_Dt order by send_time desc) where handle_status='0' and handle_user is null and rownum<6;這條語句能查出想要的結果,但是如果轉換成HQL:select * from (select * from FtSmsInteractDt order by sendTime desc) where handleStatus='0' and handleUser is null and rownum<?;就會報下面的異常:unexpected token: * near line 1, column 8 [select * from (select * from com.umessage.smsManager.domain.FtSmsInteractDt order by sendTime desc) where handleStatus='0' and handleUser is null and rownum<?]查了一下應該是hql中子查詢語句不能放在where前面,試了好多辦法,都沒有得到想要的數據,求大神指點
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

看這么一段吧:
在HQL中子查詢必須出現在where子句中,而且必須用一對圓括號括起來。為什么必須要出現在where字句之后呢?其實我們大家仔細想一下也就知道了,在Hibernate中查詢的任何一個實體對象都要有據可循,這個“據”就是Hibernate的主配置文件,也就是說凡是出現在HQL from字句中的實體對象,都必須要在Hibernate主配置文件中有明確的配置。
所以在Hibernate中無法支持SQL語句中的那種出現在from字句之后的那種動態視圖子查詢。
你這段查詢,就不要考慮使用HQL了,用SQL就是了。

查看完整回答
反對 回復 2021-08-30
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

order by 列a desc降序排列,order by 列a asc升序排列,當a列的值是一樣的情況下,order by 列a 也就失去了意義,值相同哪里來的升序降序呢。因此如果你想讓結果變動,可以按其他列排序呀,或者按rownum排序,即order by rownum asc ,order by rownum desc。
希望能幫到你。

查看完整回答
反對 回復 2021-08-30
  • 2 回答
  • 0 關注
  • 400 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號