sql多欄位排序問題,sql多欄位排序問題

時間 2022-04-26 16:40:05

1樓:匿名使用者

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>

2樓:匿名使用者

-- 思路

(case when col1 = 0 then 1 else 0 end)+

(case when col2 = 0 then 1 else 0end)+

(case when col3 =0 then 1 else 0 end)  wholenum

order by wholenum sesc

3樓:匿名使用者

那你想實現怎麼排序?

sql中多條件排序問題

4樓:匿名使用者

第一步:確定輸出內容,你要的字段為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 ;

5樓:

order by後邊的字段並不是唯一的,支援多個,按照你排序的先後順序寫就可以了。另外按照每個欄位的公升序和降序同樣支援。預設是公升序的。如下

order by column1(asc or desc),column2(asc or desc),column3(asc or desc),column4(asc or desc)...

6樓:

order by online desc,viewnum desc

sql排序 多欄位排序問題

7樓:匿名使用者

select * from 表a group by a,b order by a, b desc

上在語句適用的前提是a與b列資料沒有重複的,否責會報錯

8樓:嗬喲嗬喲拔蘿蔔

select a,b from tb1 order by a ,b desc

sql 多個字段值相加後排序問題

9樓:

很簡單,直接在order by後面進行加就可以了:

公升序:select *

from stor

order by (a+b+c+d)

降序:select *

from stor

order by (a+b+c+d) desc

10樓:匿名使用者

select a+b+c+d as abcd from stor order by abcd ;

11樓:匿名使用者

select *,(a+b+c+d) as sum from stor order by sum

12樓:匿名使用者

select * from stor order by a+b+c+d

13樓:

select (a+b+c+d) as total from stor order by total desc

14樓:匿名使用者

降序:select sum(a+b+c+d) as total from stor order by total desc;

公升序:select sum(a+b+c+d) as total from stor order by total asc;

sql 如何根據兩個字段排序

15樓:藤閣美人

1、首先建一張測試表coal_blead,裡面有多個欄位2、我們輸入「select * from coal_blead order by qnet,price」語句,按qnet,price欄位進行公升序排序

3、我們輸入「select * from coal_blead order by qnet desc,price desc」語句,先按qnet欄位進行降序,再按price欄位進行降序

4、輸入「select * from coal_blead order by qnet desc,price asc」語句,先按qnet欄位降序,再按price欄位進行公升序

5、如果我們想對更多的字段進行排序,可以進行新增

16樓:great佯裝埋倦

order by  後可加2個字段,用英文逗號隔開。

1、f1用公升序, f2降序,sql該這樣寫;

order by  f1, f2  desc2、也可以這樣寫,更清楚;

order by  f1 asc, f2  desc3、如果都用降序,必須用兩個desc;

order by  f1 desc, f2 desc

17樓:匿名使用者

order by是可以有多個欄位的

比如order by 條件1 desc,條件2 asc都可以的(這樣優先排條件1)

18樓:匿名使用者

根據order by就可以了,可多個字段排序

比如order by 條件1 desc,條件2 asc,根據需要選擇公升序或降序。

19樓:匿名使用者

select a.id,b.id from table a,table1 b where a.id=b.id order by a.id1,b.id2,desc

20樓:匿名使用者

兩個地方顯示??你要的查詢結果是顯示在同一張表裡嗎?

21樓:匿名使用者

貌似可以直接 order by 欄位1 desc, 欄位2 asc?

sql在多字段中查詢排序的問題

22樓:匿名使用者

這麼多人誤人子弟,人家說「輸出時優先輸出欄位a含有key的記錄...」 order by 是用來幹這個的啊????!!!!

既然樓主說道我那我就回答一下:)

樓下的union all是要保留重覆記錄,所以不用all

union子句把兩個或多個select語句的查詢結果組合起來,預設刪除重複行,保留要加all選項。

select box表中需要查詢的字段 from

(select 1 as sortnum,box表中需要查詢的字段

from box where a like '%key%' union

select 2 as sortnum,box表中需要查詢的字段

from box where b like '%key%' union

select 3 as sortnum,box表中需要查詢的字段

from box where c like '%key%')

order by sortnum;

23樓:匿名使用者

樓上的理解有點出入吧,按樓主的意思「將任意乙個欄位中含有key的所有記錄輸出」,只要欄位a、欄位b、欄位c含有'key',且按出現在它們中的先後順序輸出,所以不能用order by, 用了反而打了優先順序。 不知是不是我理解有誤,如果沒錯,用下語句即可:

select * from box where 欄位a like '%key%' union

select * from box where 欄位b like '%key%' union

select * from box where 欄位c like '%key%'

24樓:朱染昔癸

sql使用order

by排序

select

*from

table

order

byvalue1,value2

根據欄位value1和value2排序,預設是公升序select

*from

table

order

byvalue1,value2

desc

按照降序排序

25樓:匿名使用者

試試這個,手邊沒有sqlserver,用access試了select 1 as sortkey, *from box

where a like '%key%'

union all

select 2 as sortkey, *from box

where b like '%key%'

and not exists (select 'x' from box where chk.a like '%key%')

union all select 3 as sortkey, *from box

where c like '%key%'

and not exists (select 'x' from box chk where chk.a like '%key%' or chk.b like '%key%')

order by sortkey;

26樓:匿名使用者

select * from box where like '%key%'or b like '%key%'or c like '%key%' order by a,b,c

27樓:

「優先」是指如果在a裡有了,那麼就不去判斷b和c了,還是指排序時優先?

28樓:

wu yan miandui a !

sql 按欄位指定值排序

29樓:匿名使用者

這個需要在排序語句中使用條件判斷

例如:表【table_temp】中列【col1】為字元,屬性為varchar(10),排序時需要按照b、a、c的順序顯示,則可按照以下sql語句:

select

*from

table_temp

order by

case

when col1='b' then 1

when col1='a' then 2

when col1='c' then 3end

30樓:匿名使用者

在mssql支援case,使用以下語句實現select 表1.id, 表1.n

from 表1

order by case n when 'a2' then 1 when 'a1' then 2 when 'a3' then 3 end;

在access中使用iif來實現,如下:

select 表1.id, 表1.n

from 表1

order by iif(n='a2',1,iif(n='a3',2,3));

可參考access幫助檔案中的

access > 篩選和排序 > 按自定義次序對記錄排序

31樓:沉默使用者

order by 字句中使用case

select *

from table1

order by case a1 when 'a2' then 1 when 'a3' then 2 when 'a1' then 3 end

sql中多條件排序問題,SQL中多條件排序問題

第一步 確定輸出內容,你要的欄位為name,資料結果為b,d,a,c 第二步 找規律,b d的online為1 a c的位說明是按online 降序 然後來看下 b d的online相同,viewnum為30和10,那麼就是viewnum降序 如果a c的viewnum也是降序那麼規律就找到了,發現...

SQL語句排序的問題

你的寫法是錯誤的,按照你的寫法在對n進行降序排序時,第乙個m公升序排序結果會失效,等於最終唯讀n做了降序排序,而且你的語句本身也比較冗餘。正確的寫法是 select from a order by m asc n desc 我們可以通過一些例項來具體分析order by 子句的用法 假設有order...

sql排序分組取數的問題,乙個sql排序分組取數的問題

首先,因為不知道您用的是什麼資料庫。如下,僅以oracle為例,希望可以觸動您的靈感,sql如下 select t2.from select t1.rank over partition by t1.編號 order by t1.日期 desc as rk from contract t1 t2 w...