當前位置:首頁 » 編程語言 » sql多個欄位排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql多個欄位排序

發布時間: 2022-01-30 11:58:19

『壹』 若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