SQL語句order by兩個欄位同時排序問題
可能對不少網友來說非常簡單,但是我覺得在一定程度上對我還是有些迷惑之處,下面就通過hibernate中的HQL語句來介紹下這類問題的效果。
首先HQL語句程式碼:
FROM Topic t WHERE t.id >2 ORDER BY t.type DESC,t.number DESC
- 1
也可以按照下面的寫法:
FROM Topic t WHERE t.id >2 ORDER BY t.type,t.number DESC
- 1
這行程式碼理解起來實際上是非常簡單,首先查處topic表中id欄位大於2的所有資料,然後對這些資料首先根據該表的type欄位進行降序排序,然後再根據該表的number欄位進行降序排序。下面就通過圖片來簡單介紹:
假設:t.id>2查詢後的資料為:
通過對t.type進行降序排序後結果為:
再通過對t.number進行降序排序後起初我認為的結果為:
然而最總的結果為:
所以不難發現其時最終執行的不但是兩次排序,他是在保持滿足對type排序的前提下再對number排序。
這就非常適用於論壇中“置頂貼”和“普通貼”排序功能的實現。
相關推薦
SQL語句order by兩個欄位同時排序問題
可能對不少網友來說非常簡單,但是我覺得在一定程度上對我還是有些迷惑之處,下面就通過hibernate中的HQL語句來介紹下這類問題的效果。 首先HQL語句程式碼: FROM Topic t WHERE t.id >2 ORDER BY t.type DESC,t.number DESC
SQL語句order by兩個欄位同時排序
ORDER BY 後可加2個欄位,用英文逗號隔開。 f1用升序, f2降序,SQL該這樣寫 ORDER BY f1, f2 DESC 也可以這樣寫,更清楚: ORDER BY f1 AS
mysql SQL語句order by兩個欄位同時排序
ORDER BY 後可加2個欄位,用英文逗號隔開。 f1用升序, f2降序,sql該這樣寫 ORDER BY f1, f2 DESC 也可以這樣寫,更清楚: ORDER BY f1
【SQL語句】Order by 兩個欄位同時排序
小編最近在專案中用到了order by 字句排序,並且是根據兩個欄位排序,到網搜尋一翻,果然收穫不少。 order by 可同時排序2個欄位,欄位中間用英文逗號可開。 1、f1用升序
linq/EF/lambda Group by/Order by 多個欄位詳細用法
1)單個欄位Group by: //a.Key型別與a.Province欄位型別一樣 .GroupBy(a => a.Province).Select(a => a.Key).ToList(); 2)多個欄位Group by: //此時返回的資料列表需要
mysql order by多個欄位排序
MySql Order By 多個欄位 排序規則比如:如要根據ConfigID和MarketID來排序有如下語句:SELECT * FROM TABLE ORDER BY ConfigID, MarketID DESC;那麼結果:分析:其實這個語句等同於:先按照ConfigI
SQL語句distinct的多個欄位去重問題
經典例子 select distinct name, id from table 或者 select name,id from table group by name 像這樣是錯誤的寫法,distinct不起作用的 曲線救國寫法: select name,id f
根據兩個欄位去重SQL語句
delete from aop_app_ipmlinfo a where a.impl_id not in ( select max(t.impl_id) c from aop_app_ipmlin
hive:(group by, having;order by)的使用;group by+多個欄位,以及wiki說的group by兩種使用限制驗證
hive> select * from app_data_stats_historical where os='1' group by dt limit 100; 出現結果如下: 2014-01-01 2014-01-06 ...... 2014-02-07 2014
SQL之group by order by 和多欄位的理解和聯想
一. 使用場景: group by field having count(1) >1用來判斷某個欄位是否有重複值,比如下頁想驗證t_external_member表裡面是否有重複的值,使用如下的sql: select * from t_external_member
order by後多個欄位的排序
預設的排序方式是ASC升序 ORDER BY 多個欄位之間用英文逗號隔開,其實在很多場景下都是結合者GROUP BY使用。 舉一個例子 1、create_date用升序, up_votes降
MySql分組查詢(group by)並計算對應的欄位之和及兩個欄位相乘之後的和
有表如下: 需求:求出每一種商品(goods_id)的數量(goods_num)之和及單價(goods_price)乘以數量之和 sql 語句:SELECT sum(goods_pirce*goods_num) AS price_amount,sum(goods_num)
【sql】根據兩個欄位的值組合情況去自定義第三個欄位
場景2: 根據兩個欄位的值組合情況去自定義第三個欄位 原始表: S_INFO_WINDCODE S_INFO_LISTBOARDNAME 600129.SH 主機板 000606.SZ 主機板 002152.SZ 中小企業板 30
sql查詢同一表格中,不同欄位,但是兩個欄位的值相同的記錄行
比如有表格go_shoplist,欄位為id,qishu,maxqishu 查詢的記錄為.qishu與maxqishu相同的行. select * from `go_shoplist` where
SQL--查詢兩個欄位相同的記錄
1.如下,查詢order_id和loan_lind兩個欄位相同的記錄 select distinct a.order_preview_id, a.order_id, a.loan_kind from ddk_order_preview_info a join ddk_o
SQL 兩個欄位分組,其中一個欄位的不同情形,分類並計算數量
查詢結果: SQL:select `dateTime`, sum(`result`=(case when result='勝' then '勝' end)) as '勝', sum(`result`=(case when result='負' then '負'
group by多個欄位
首先group by 的簡單說明: group by 一般和聚合函式一起使用才有意義,比如 count sum avg等,使用group by的兩個要素: (1) 出現在select後面的欄位 要麼是是聚合函式中的,要麼就是group by 中的. (2)
group by 多個欄位
首先group by 的簡單說明: group by 一般和聚合函式一起使用才有意義,比如 count sum avg等,使用group by的兩個要素: (1) 出現在select後面的欄位 要麼是是聚合函式中的,要麼就是group by 中的. (2) 要篩選結果 可以先使用where
執行SQL語句的時候唯一約束欄位異常Duplicate entry '33382-1-0' for key xxx
前言:做專案的時候,執行SQL語句報了Duplicate entry '33382-1-0' for key xxx異常,後來發現是唯一約束導致,於是乎一通谷歌百度,後來解決了,記錄一下。 正文: 程式碼片段是這樣的: session.createSQLQuery("i
帝國CMS,使用sql語句查詢時,有些欄位不顯示
使用sql查詢資料時,有些欄位不顯示,比如<?=$bqsr[classname]?>顯示為空,或者其他的。 [e:loop={'select classid,classpath,classname from [!db.pre!]enewsclass where