討論區快速選單
知識庫快速選單
網路投保旅行平安險 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
or 串起的多條件如何排序?
更改我的閱讀文章字型大小
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/8/2 上午 02:24:49
目前用到的查詢需 多個條件 or 符合...
select * from [table] where a=a1 or b=b1 or c=c1 or d=d1 or ......
如何能依 符合的條件愈多者 排在前面

比如:某一資料錄符合 a=a1 and b=b1 and c=c1 (符合條件有3個)
就會比只符合 a=a1 and d=d1 (只符合2個條件)
排在更前面!
第一次來貴版發問,還希望各位先進多多提供意見及解答!謝謝!
(因本人慣用VB,是可以分次列舉來查詢,依序分次查詢後的結果寫到物件中...但總覺得這不是最佳的方式...)
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/8/4 下午 02:24:48
很簡單唷....
你只要先建立一另一個Table假設叫做[table1]裡面把a1,b1,c1,d1的值放進去
[table1]
Value
-
a1
b1
c1
d1

再把[table]跟[table1]Join利用一些技巧

[table] LEFT OUTER JOIN [table1] ON ’,’+table.a+’,’+table.b+’,’+table.c+’,’+table.d+’,’ LIKE ’%,’+table1.Value+’,%’

在GROUP BY id & Order By COUNT(id) desc 就搞定啦!

>目前用到的查詢需 多個條件 or 符合...
>select * from [table] where a=a1 or b=b1 or c=c1 or d=d1 or ......
>如何能依 符合的條件愈多者 排在前面
>
>比如:某一資料錄符合 a=a1 and b=b1 and c=c1 (符合條件有3個)
>就會比只符合 a=a1 and d=d1 (只符合2個條件)
>排在更前面!
>第一次來貴版發問,還希望各位先進多多提供意見及解答!謝謝!
>(因本人慣用VB,是可以分次列舉來查詢,依序分次查詢後的結果寫到物件中...但總覺得這不是最佳的方式...)
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/8/5 下午 01:42:05
可以請大大改為 不要另開table 的方式嗎?純粹以原table查詢式一次撈出(不要有 其它寫入 或 分多次)~謝謝!
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人168註記此篇回應為最佳解答 2008/8/5 下午 01:46:21
ORDER BY
 (CASE A WHEN A1 THEN 1 ELSE 0 END)
+(CASE B WHEN B1 THEN 1 ELSE 0 END)
+....
DESC
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/8/5 下午 04:41:18
>ORDER BY
> (CASE A WHEN A1 THEN 1 ELSE 0 END)
>+(CASE B WHEN B1 THEN 1 ELSE 0 END)
>+....
>DESC
嗯~好用!
阿戊 把它改到前面 當成 另一個 欄位!還可以秀出符合的條件數!
謝啦~點數奉上!^_^
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875