⑴ sql中排序要怎麼寫
1.語法:
SELECT "欄位名"
FROM "表格名"
[WHERE "條件"]
ORDER BY "欄位名" [ASC, DESC];
2.注意事項:先分組再排序,運用的是ORDER BY,後面加的是你要按什麼排序,如果按照升序可以不用寫或者加上ASC;如果是降序,要加上DESC。
3.例子:SELECT id FROM user ORDER BY id;
⑵ 要提高SQL查詢效率where語句條件的先後次序應如何寫效率更好,
有索引的列優先,都有索引的看查詢出來的數據量,少的優先
in ,not in,<>,is null,is not null 等由於不會走索引,盡量不要使用。
WHERE子句後面的條件順序對大數據量表的查詢會產生直接的影響,如
Select * from zl_yhjbqk where dy_dj = '1K以下' and xh_bz=1
Select * from zl_yhjbqk where xh_bz=1 and dy_dj = '1K以下'
以上兩個SQL中dy_dj及xh_bz兩個欄位都沒進行索引,所以執行的時候都是全表掃描,第一條SQL的dy_dj = '1KV以下'條件在記錄集內比率為99%,而xh_bz=1的比率只為0.5%,在進行第一條SQL的時候99%條記錄都進行dy_dj及xh_bz的比較,而在進行第二條SQL的時候0.5%條記錄都進行dy_dj及xh_bz的比較,以此可以得出第二條SQL的CPU佔用率明顯比第一條低。
⑶ 求一sql語句使數據按 where in 括弧內的數據順序排列
看了你要求,我重新給你改了一下,這句就可以達到
你的要求
:select
*
from
para
where
bh
in('1','2','4','7','8','11','10')
order
by
CONVERT(char(10),bh)
asc
你試試,應該是可以的,按
字元
排序,char(10)這個
大小
根據你數據多少,不需要這么大,就
小點
,也可以用varchar(10)。
不明白可以繼續問
⑷ SQL語句中,選擇結果如何按指定順序排序
可以這樣實現題主所要求的排序
select * from A_TABLE1 where
name in(『張三』,『李四』,『王五』)
order by (case name when '張三' then 1
when '李四' then 2 else 3 end);
⑸ 當sql語句中的where條件過多時,有先後順序嗎
Where 後面的條件判斷語句先後是沒有關系的。
因為要滿足 Where 後面的所有判斷條件後,Where 才能最後得出 「真」的結果。
有時候為了閱讀方便,把個別的條件語句用括弧括起來。
你的Where 後面的 .... and ORDER BY Grade DESC;明顯是錯誤了!
Order By 前面不需要 "and" 的。
⑹ sql where 執行順序
先執行 from 後面的數據源
然後在執行 where
select
⑺ 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是有區別的!