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

排序順序問題?

尚未結案
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-04 11:33:53 IP:218.163.xxx.xxx 未訂閱
請問各位大大: 現在電腦在排序時,會是1 10 11 --- 19 2 20 --- 29 3 30 --- 4 5 請問能不能透過設定改為 1 2 3 --- 9 10 11 --- 19 20 21 --- 29 30 ?
zilch
中階會員


發表:5
回覆:87
積分:78
註冊:2002-09-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-04 12:36:58 IP:218.166.xxx.xxx 未訂閱
引言: 請問各位大大: 現在電腦在排序時,會是1 10 11 --- 19 2 20 --- 29 3 30 --- 4 5 請問能不能透過設定改為 1 2 3 --- 9 10 11 --- 19 20 21 --- 29 30 ?
用文字型態排序才會造成這種結果 用數字型態就不會了
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-04 12:37:11 IP:140.113.xxx.xxx 未訂閱
myboss你好 請問你是如何寫排序的呢?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-04 21:55:33 IP:218.163.xxx.xxx 未訂閱
zilch兄妳好: 請問如何將系統設定為數字型態? chtai兄妳好: 我是將SQL指令分成三段 S:select * from db s1: where a1 = 1 s2: order by a1 asc 當要使用時,只要更換必要條件就行了 Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add(s s1 s2); Query1->Open(); 如此只要更換S2就能改變排序條件
hao_chih
一般會員


發表:15
回覆:25
積分:18
註冊:2003-09-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-05 01:48:39 IP:61.229.xxx.xxx 未訂閱
如果是在希望不改變資料庫排序原則的情況下,可建議你幾個方式: 一,將你的a1欄位的資料型態變為int(舉例ACCESS,選擇資料表,選擇設計資料表) 二,利用sql將select出來的字串補零,例如format(a1,"00") as a2 資料庫不一樣,函式不一定會一樣,請自行查詢資料庫支援的函式
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-05 12:21:21 IP:218.163.xxx.xxx 未訂閱
hao_chih 兄妳好: 我的資料庫是ACCESS,A1藍為型態是AUTOINT 可是排序起來依舊是1 10 11 --- 19 2 20 --- 29 3 30 --- 4 5 請問是否只要改成INT型態就好了? 另外format(a1,'00')怎樣帶入SQL,是否是 select format(a1,'00') as a0,a2,a3 from db ? 發表人 - myboss 於 2004/06/05 12:30:57
hao_chih
一般會員


發表:15
回覆:25
積分:18
註冊:2003-09-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-06 02:51:52 IP:61.229.xxx.xxx 未訂閱
如果是Access的話,補零是這樣補(測試OK) SELECT format(a1,"00") as a2  FROM mytable ORDER BY a1    還有另一點,數字型態的排序應該是不會發生類似文字型態的排序情況的 (不然資料庫可能會賣不出去吧,排個數字都排不好) 不管你是自動編號,或是整數型態應該都不會發生才對 請確認是否有其他因素造成此現象 比如說你原來的
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-06 13:02:48 IP:218.163.xxx.xxx 未訂閱
hao_chih先生你好: 我依照您所提供的方法SELECT format(a1,"00") as a2 FROM mytable ORDER BY a1 將之填入TQuery--SQL然後將其active設為true,決果出現 Capacity not support 另外我的SQL真的就是 select * from db這麼簡單 目前執行除了排序外沒什麼問題。 在SQL Explorder中可正常執行,但排序依舊 我將A1欄為改為數字--長整數後結果不變 請問我要如何解決這問題?
hao_chih
一般會員


發表:15
回覆:25
積分:18
註冊:2003-09-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-07 09:05:06 IP:61.63.xxx.xxx 未訂閱
抱歉~我沒注意到我測試的table欄位是數字型態, 所以我的Order by 下在a1排序會正確,你的卻不會,請改用以下的sql  
SELECT * 
FROM (SELECT format( a1 ,"000") as a2 
FROM  db) AS MyTable2 
ORDER BY a2;
 
發表人 - hao_chih 於 2004/06/07 09:06:33
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-08 11:55:25 IP:218.163.xxx.xxx 未訂閱
hao_chih先生你好: 還是不行啊!我依照您所提供的方法 SELECT * FROM (SELECT format( a1 ,"000") as a2 FROM db) AS MyTable2 ORDER BY a2; 會出現這樣的錯誤: Invalid use of keyword token:select line number :2
hao_chih
一般會員


發表:15
回覆:25
積分:18
註冊:2003-09-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-06-08 14:29:33 IP:61.63.xxx.xxx 未訂閱
請注意每個結構中間有個空白存在,尤其是換行的時候很容易漏掉。 還有你在更改sql後,一樣請用資料庫確認sql沒問題,以必免sql語法的錯誤。    抱歉,我實在看不出有啥問題點了,如果可以的話,請將原始檔上傳(含資料庫)或是貼出來,找問題會比較快。
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-06-08 21:13:13 IP:218.163.xxx.xxx 未訂閱
hao_chih先生你好: 經您告知後在看一下電腦,不管是XP或98SE 發現我的電腦都是以文字型態排序,為了測試, 我建了1.zip 2.zip ... 19.zip 20.zip 卻看到不管是XP或98SE都是這樣排序 1.zip 10.zip 11.zip --- 19.zip 2.zip 20.zip 難當您的系統不是這樣嗎?
hao_chih
一般會員


發表:15
回覆:25
積分:18
註冊:2003-09-10

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-06-09 16:03:01 IP:61.63.xxx.xxx 未訂閱
引言: 發現我的電腦都是以文字型態排序,為了測試, 我建了1.zip 2.zip ... 19.zip 20.zip 卻看到不管是XP或98SE都是這樣排序 1.zip 10.zip 11.zip --- 19.zip 2.zip 20.zip 難當您的系統不是這樣嗎?
文字會這樣排序本來就沒錯啊,所以才需要補0 01.zip 02.zip 10.zip 11.zip 請問你的問題不就是出在資料庫Select出來的資料排序不對嗎? 如果你問的是作業系統設定的問題,比如說檔案總管裡頭的檔案排序的問題, 抱歉那我就不會了 檔案總管排序本來就是依照文字(中文可設定筆劃或是拼音)來排序的, 所以會排成這樣本來就是理所當然,因為檔名並不是數字。
myboss
一般會員


發表:25
回覆:42
積分:13
註冊:2004-01-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-06-18 09:03:37 IP:218.163.xxx.xxx 未訂閱
hao_chih先生你好: 謝謝您的指導,我最後決定把藍為改為文字欄位 並寫程式碼自動補0,也在此感謝zilch兄仗義 發言,我的問題就此結束。
系統時間:2024-06-27 0:45:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!