線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1509
推到 Plurk!
推到 Facebook!

能不能按照輸入的順序排序

答題得分者是:shpeng
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-27 11:56:39 IP:61.229.xxx.xxx 未訂閱
請問SQL 能不能按照輸入的順序排序。 像,輸入姓=廖,藍,陳 就會找出這三個姓的人,然後照我輸入的名字順序排序 廖xx 廖xx 藍xx 藍xx 陳xx 我同學給我一串怪語法,但是在SQL Server 2000不能跑 在Access卻可以,誰能幫我看看怎麼在SQL Server 2000跑 select id from xxx where id='廖' or id='藍' or id='陳' order by id='廖', id='藍', id='陳' 月夜 光明 藍更愁
------
月夜 光明 藍更愁
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-27 13:03:23 IP:61.219.xxx.xxx 未訂閱
引言: 請問SQL 能不能按照輸入的順序排序。 像,輸入姓=廖,藍,陳 就會找出這三個姓的人,然後照我輸入的名字順序排序 廖xx 廖xx 藍xx 藍xx 陳xx 我同學給我一串怪語法,但是在SQL Server 2000不能跑 在Access卻可以,誰能幫我看看怎麼在SQL Server 2000跑 select id from xxx where id='廖' or id='藍' or id='陳' order by id='廖', id='藍', id='陳' 月夜 光明 藍更愁
select id from xxx where id like '廖%' union select id from xxx where id like '藍%' union select id from xxx where id like '陳%' ... Note : select table count must <= 16. /* 使用中文很辛苦,中華男兒當自強 */
shpeng
初階會員


發表:6
回覆:67
積分:49
註冊:2002-12-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-27 13:56:47 IP:61.219.xxx.xxx 未訂閱
SELECT * FROM XXX
        WHERE SUBSTRING(ID,1,1) in ('廖','藍','陳')
        ORDER BY CASE SUBSTRING(ID,1,1)
                WHEN '廖' THEN 1
                WHEN '藍' THEN 2
                WHEN '陳' THEN 3
                END
==取之於斯,用之於斯== 發表人 - shpeng 於 2003/01/27 13:58:29
------
==取之於斯,用之於斯==
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-27 16:46:52 IP:61.229.xxx.xxx 未訂閱
引言:
SELECT * FROM XXX
        WHERE SUBSTRING(ID,1,1) in ('廖','藍','陳')
        ORDER BY CASE SUBSTRING(ID,1,1)
                WHEN '廖' THEN 1
                WHEN '藍' THEN 2
                WHEN '陳' THEN 3
                END
==取之於斯,用之於斯== 發表人 - shpeng 於 2003/01/27 13:58:29
請問一下,如果是要完全等於呢? 像輸入 廖天丁 藍小五 陳小扁 輸出 廖天丁 廖天丁 藍小五 陳小扁 陳小扁 月夜 光明 藍更愁
------
月夜 光明 藍更愁
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-27 16:54:13 IP:210.58.xxx.xxx 未訂閱
引言: 請問一下,如果是要完全等於呢? 像輸入 廖天丁 藍小五 陳小扁 輸出 廖天丁 廖天丁 藍小五 陳小扁 陳小扁 月夜 光明 藍更愁
一樣的啊... 參考 shpeng 兄的用法
SELECT * FROM XXX        WHERE ID in ('廖天丁','藍小五','陳小扁') 
ORDER BY CASE ID
  WHEN '廖天丁' THEN 1
  WHEN '藍小五' THEN 2
  WHEN '陳小扁' THEN 3
END
另外, Mickey 兄用的方式可以改為 subquery 的方式才能夠排序哦, 否則會依照首欄排序而非 union 的順序排序哦, 更改為:
select id from
(
select id, 1 as sortorder from xxx where id like '廖%' 
union
select id, 2 as sortorder from xxx where id like '藍%'
union
select id, 3 as sortorder from xxx where id like '陳%'
) tmp
order by sortorder
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-28 11:23:58 IP:61.229.xxx.xxx 未訂閱
謝謝,我解決了。 這是我最後的語法,供大家參考 SELECT * FROM green01 WHERE blist='2' or blist='1' or blist='3' ORDER BY CASE blist WHEN '2' THEN 1 WHEN '1' THEN 2 WHEN '3' THEN 3 END 月夜 光明 藍更愁
------
月夜 光明 藍更愁
系統時間:2024-04-29 2:58:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!