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...