Ⅰ sql排序問題
sql排序的規則是,按照第一個欄位的順序正序或倒序排列,
當第一個欄位是相同的,那麼會按照第二個欄位的正序或倒序排列
依次類推,如果後面沒有排序欄位,會隨機排列
所以,按照第一個欄位倒序,按照第二個欄位正序排列,結果視覺顯示全部到序,原因可能是
第一個欄位並無相同的,且第一個欄位和第二個排序欄位數值的增減是成反比的。
Ⅱ SQL語句中如何判斷條件實現不同的排序方式
第一步:確定輸出內容,你要的欄位為name,數據結果為b,d,a,c
;
第二步:找規律,b、d的online為1;a、c的位說明是按online
降序;然後來看下
b
、d的online相同,viewnum為30和10,那麼就是viewnum降序;如果a、c的viewnum也是降序那麼規律就找到了,發現
a為40、c為20,確實是降序,滿足條件。
第三步:總結規律就是先按online降序排序,之後再按viewnum降序排序。
第四步:得出需要的sql。
select
name
from
tablename
order
by
online
desc,
viewnum
desc
;
Ⅲ sql按條件排序
select paixu,id from td group by paixu,id order by id*(paixu-0.5)
如果還要選別的列必須給該列加上聚合函數 比如min() max()都可以
Ⅳ sql 排序的寫法,按照兩個條件去排序
ORDER BY 後可加2個欄位,用英文逗號隔開。 1、f1用升序, f2降序,sql該這樣寫; ORDER BY f1, f2 DESC2、也可以這樣寫,更清楚; ORDER BY f1 ASC, f2 DESC3、如果都用降序,必須用兩個desc;
Ⅳ SQL查詢的排序問題
select * from 表 where 欄位 in (x1,x2,x3,x4.....) order by 欄位 ASC/DESC
此中排序欄位是索引條件中欄位,ASC為升序,DESC為降序,此中的排列會以X1,X2,X3排序,但X1可能有很多數據,如果在X1內部排序,請加上第二排序。
select * from 表 where 欄位 in (x1,x2,x3,x4.....) order by 欄位 ASC/DESC,欄位2 ASC/DESC
此表達式是在X1,X2等排序的基礎上再按欄位2進行排序!
我就不明白,如何是多數據,X1,X2等又包含多個條記錄,你就不想用Group呢?
你想看一下group by 的使用方法,對時可以對分組條件進行限定,關鍵詞是having,使用方法類where,但與where是有區別的!
Ⅵ SQL如何條件順序排列查詢結果
用CASE進行轉義就可以了
SELECT T1.A,T2.B,T1.C,T2.C
FROM T1 INNER JOIN T2
ON T1.C= T2.C
WHERE T1.A IN ('11','55','33','88')
ORDER BY CASE T1.A
WHEN '11' THEN 1
WHEN '55' THEN 2
WHEN '33' THEN 3
WHEN '88' THEN 4
END
意思是將T1.A的值根據條件轉為1,2,3,4這樣的數據來排序
你測試一下是不是你要的結果
Ⅶ SQL 多條件排序
SELECT
ckcz.rq, ckcz.ry, ckcz.id, ckcz.lx, ckcz.ckbh, ckcz.rkbh, ckcz.rksbwz, sb.mc, sb.xh,bg.bz, bg.wz
FROM
ckcz
INNER JOIN sb
ON ckcz.ckbh = sb.ccbh
INNER JOIN bg
ON ckcz.ckbh = bg.ccbh AND ckcz.rq = bg.rq
ORDER BY
CASE WHEN ckcz.lx = '更換' AND ckcz.rkbh IS NULL OR TRIM(ckcz.rksbwz) = '辦公室檢修桌' THEN 1 ELSE 0 END,
ckcz.rq DESC