SQL語法排序的問題? |
答題得分者是:senso
|
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
前輩大家好!!
以下是我排序的問題... 資料庫: Sybase
因條件必須變成
或者
問題: 條件1.欄位A內數字777或999 相同的兩個數字必須在一起(中間不可有空格) 但可以與不同數字分開!! 2.標記"必須"在最上面或者像是有777跟標記這兩種條件成立的下方 3.999因為沒有標記所以必須在標記以下 !! 4.最大的問題點: 其中有一個欄位 A 777 有標記.... 5.欄位內值 "標記" 不會變~一定是此值!! 6.若我只下欄位A DESC 就會變成 777有標記的在最上面 但連帶999也會跟著跑上去 就其他的標記會跟在 999下方 若我只下欄位B DESC 就會變成 有標記的都在最上面 但連帶777 會散開 若我下 欄位A DESC 跟 欄位B DESC ......那 777會散開 7.必須比對資料庫,所以一但使用where 會篩選資料庫會造成資料錯誤.... 8.sorry前輩 ...補上一點 數字 777 999 數字會隨著時間.........增加再加上 666 888..... 若時間越久 數字就不同如 777 778 779 880 881 882 883...............999 等等之類的依此類推 我下SQL語法 select 欄位A ,欄位B from 資料表 order by 欄位A desc,欄位B desc 就造成我以上的問題~~ 有辦法可達成兩種這種格式嗎? 排序的方法? ....潛水 爬山 中..... 懇請前輩指教後輩 ~隨意隨緣 感激不盡~謝謝 !! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
frappe
中階會員 ![]() ![]() ![]() 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
senso
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:126 積分:226 註冊:2003-11-27 發送簡訊給我 |
Sybase我沒用過,排序應該都大同小異吧
這邊我用access寫
SELECT 資料表.欄位A, 資料表.欄位B FROM 資料表 ORDER BY 資料表.欄位A, 資料表.欄位B DESC; 或 ORDER BY 資料表.欄位B DESC , 資料表.欄位A;
簡單的說就是把欄位跟值設個權重排序 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
謝謝senso
我的疏忽忘了說 這只是個比如 而數字部分會已遞增狀態輸入 那標記不會變 所以內容如下!!~ 標記 標記 標記 1 2 3 . . . 665 666 667 . . 777 標記 . 998 999 謝謝!! ===================引 用 senso 文 章=================== Sybase我沒用過,排序應該都大同小異吧 這邊我用access寫
SELECT 資料表.欄位A, 資料表.欄位B FROM 資料表 ORDER BY 資料表.欄位A, 資料表.欄位B DESC; 或 ORDER BY 資料表.欄位B DESC , 資料表.欄位A;
簡單的說就是把欄位跟值設個權重排序 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
senso
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:126 積分:226 註冊:2003-11-27 發送簡訊給我 |
decode是oracle function
google一下sybase應該可以用case when,(oracle也有case when) 剛才測一下order by asc的時候access和mssql的null的row都會在上面...... oracle的null的row都會在下面.... 可以試試看這樣 order by (case when 資料表.欄位A is null then 0 else 資料表.欄位A end) asc,資料表.欄位B asc 欄位A is null在上面再照值排序,在欄位A相同時欄位B有標記在上面
編輯記錄
senso 重新編輯於 2011-01-25 02:17:51, 註解 無‧
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大武士
一般會員 ![]() ![]() 發表:3 回覆:11 積分:7 註冊:2010-09-08 發送簡訊給我 |
senso frappe sryang herbert2
謝謝你們熱心相助!!~ 這幾天再測試...(快)成功了!!~ 先在此感謝各位前輩協助 新年即將到來 在此祝賀 健康如意 平安順心 再次謝謝 !! ===================引 用 senso 文 章=================== decode是oracle function google一下sybase應該可以用case when,(oracle也有case when) 剛才測一下order by asc的時候access和mssql的null的row都會在上面...... oracle的null的row都會在下面.... 可以試試看這樣 order by (case when 資料表.欄位A is null then 0 else 資料表.欄位A end) asc,資料表.欄位B asc 欄位A is null在上面再照值排序,在欄位A相同時欄位B有標記在上面 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |