『壹』 若sql語句中order by指定了多個欄位,則怎麼排序
order by id desc,time desc
先是按 id 降序排列 (優先)
如果 id 欄位 有些是一樣的話 再按time 降序排列 (前提是滿足id降序排列)
order by name, age desc
name優先
name一樣的話,就按age排序。
後面再加第三列的話,也是一樣 以此類推下去。
(1)sql多個欄位排序擴展閱讀:
mySql order by 幾種排序的寫法
1、單列升序:select<column_name> from <table_name> order by <column_name>; (默認升序,即使不寫ASC)
2、單列降序:select <column_name> from <table_name> order by <column_name> desc;
3、多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>;
4、多列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc;
5、多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc;
『貳』 sql 同一行多欄位 排序
只能用存儲過程或者一路Case比大小.這里用過程:假設你表名是"t"
create proc proc_sortCol
as
begin
--臨時表
create table #t(
idx int primary key identity (1,1),
id int,
hv varchar(50),
col int)
--列轉行並排序
insert into #t
select id,hv,col from
(select id,h1 hv,''col from t --改表名在這幾行
union select id,h2,'' from t
union select id,h3,'' from t
union select id,h4,'' from t
union select id,h5,'' from t
)k order by id,hv
--計算對應列
update #t set col= idx-(5*(id-1))
--行轉列
select id,
max(case col when 1 then hv else '0' end) as h1,
max(case col when 2 then hv else '0' end) as h2,
max(case col when 3 then hv else '0' end) as h3,
max(case col when 4 then hv else '0' end) as h4,
max(case col when 5 then hv else '0' end) as h5
from #t
group by id
--刪除臨時表
drop table #t
end
------------
--執行:
exec proc_sortCol
『叄』 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。
,viewnumdesc;
『肆』 SQL 一條數據多個欄位排序...
一般的表不會那麼多欄位代表的東西屬性都相同吧??怎麼還有這樣的表?
一般就這樣
select
*
from
table
order
by
a
desc,b
desc,c
desc
『伍』 sql多欄位排序問題
SQL> select * from test order by a+b+c,a,b,c;
A B C
-- -- --
0 0 1
0 1 0
1 0 0
0 1 1
1 0 1
1 1 0
6 rows selected.
SQL> select * from test;
A B C
-- -- --
0 1 0
1 0 0
0 1 1
1 0 1
1 1 0
0 0 1
6 rows selected.
SQL>
『陸』 如何對sql檢索出的數據進行多列排序
SQL多列排序可以在ORDER BY 子句里列出多個列進行排序,列與列之間用逗號隔離,標注關鍵字ASC為升序排序、DESC為降序排序,省略升/降排序關鍵字則默認為升序排序。排序欄位列表中越靠前的欄位其排序優先順序別越高。請注意對SQL語句除了對列實施排序外,還可以對基於列的計算表達式實施排序。
請參考下列SQL多列排序語句:
select * from t1 order by col1,col5 desc,col3;
此例以col1第一優先升序排序,col5第二優先降序排序,col3第三優先升序排序。
『柒』 sql多條件多欄位排序(圖文教程)
語句:
復制代碼
代碼如下:
select
*
from
[User]
order
by
[Password]
desc,Id
asc
在一個條件重復的情況下,使用第二個條件排序
如下:
注意這里的第
14,15條記錄
(在Password相同的情況下,根據Id排序)
語句:
復制代碼
代碼如下:
select
top(5)
*
from
(select
top(5)*
from
[User]
order
by
Id
desc
)
x
order
by
[Password]
asc
在已經查詢出來(已排序)的數據中排序
(也就是挑選
Id排序前五條記錄
再將五條記錄
根據Password排序)
復制代碼
代碼如下:
select
top(5)*
from
[User]
order
by
Id
desc
如下
復制代碼
代碼如下:
select
top(5)
*
from
(select
top(5)*
from
[User]
order
by
Id
desc
)
x
order
by
[Password]
asc
如下:
今天做個通訊錄,因為客戶要求復雜,唉。……
要多我條件排序,在網上查找了一些資料,成功
,特記下
復制代碼
代碼如下:
select
*
from
Reply
where
Replyid="&request("Replyid")&"
order
by
排序欄位1
desc,排序欄位2
desc,排序欄位3
desc
『捌』 sql可以根據多個欄位排序么是不是只有排在最前面的起作用
可多欄位排序,當多欄位排序時,首先排序第一個欄位,當第一個欄位值相同時,才按第二個欄位排序,如果第二個欄位值相同,才按第三個排序...
『玖』 sql語句中的多個欄位進行排序,規范該怎麼寫,請高手指點
select * from 表名 order by 排序欄位1, 排序欄位2;
『拾』 sql 語句如何按兩個欄位的計算結果排序
1、a和b都不為空值或null值,分母也無0值
select a/b as c,a,b from table order by a/b
2、a或b其中一個為null值是,將null值轉換為1且分母也無0值:
select isnull(a,1)/isnull(b,1) as c,a,b from table order by isnull(a,1)/isnull(b,1)
3、a或b其中一個為null值是,將null值變為非null值的那一列的值且分母也無0值:
select NULLIF(COALESCE(a,b), 0.00)/NULLIF(COALESCE(b,a), 0.00) as c,a,b from table order by NULLIF(COALESCE(a,b), 0.00)/NULLIF(COALESCE(b,a), 0.00) as c
4、a和b不為空也不為null 但是分母為0時:
select round(a/nullif(b,0),2) as c,a,b from table order by round(a/nullif(b,0),2) as c