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

不同SQL放在一各GRID如何作排序ORDER BY

答題得分者是:herbert2
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-04 09:21:00 IP:122.116.xxx.xxx 訂閱
小弟在一各BUTTON中放很多
SQL 去 SELECT 不同TALBE
然後放在STRINGGRID 裡面做整合的資訊
但發現在每各SQL 做的ORDER BY 實際跑出來 就是會很亂

ORDER BY 的結果 就只有那一段SQL 的ORDER BY
其餘的都是按照自己SQL 作ORDER BY

想請問 如何在全部SELECT 跑完之後再做一次ORDER BY呢??
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-04 09:55:56 IP:211.72.xxx.xxx 訂閱
ORDER BY 是針對整個 SELECT 之結果, 放置在中間是無作用的.
若您要將不同 Table 資料分別選出, 則須先放入 TStrings 中 Sort 後再填入 StringGrid.

若選出的資料有類似的 Column 及 DataType, 則可用 UNION 的 SQL 指令:
SELECT Column_ListA FROM TableA
UNION
SELECT Column_ListB FROM TableB
UNION
SELECT Column_ListC FROM TableC
ORDER BY ResultColumnIndexList;

例如 Column1,Cloumn2,Cloumn3 ....... 等 List,
但要 ORDER BY Cloumn3,Cloumn1,Cloumn2
則 ResultColumnIndexList 填 3,1,2.

===================引 用 lovemari 文 章===================
小弟在一各BUTTON中放很多
SQL 去 SELECT 不同TALBE
然後放在STRINGGRID 裡面做整合的資訊
但發現在每各SQL 做的ORDER BY 實際跑出來 就是會很亂

ORDER BY 的結果 就只有那一段SQL 的ORDER BY
其餘的都是按照自己SQL 作ORDER BY

想請問 如何在全部SELECT 跑完之後再做一次ORDER BY呢??
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-04 12:29:43 IP:60.248.xxx.xxx 訂閱
不好意思,借用一下  herbert2 大的文章

也可以像下面這樣

Select Column1, Column2 from
(
SELECT Column1, Column2 FROM TableA
UNION
SELECT Column1, Column2 FROM TableB
UNION
SELECT Column1, Column2 FROM TableC
) tmp
ORDER BY Column1, Column2

但請注意用 Union 時欄位數要一樣~~~!
------
價值的展現,來自於你用哪一個角度來看待它!!
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-05 10:32:12 IP:122.116.xxx.xxx 訂閱
那想再請問 如果是

一各 Table
七各CilentDataSet 在同一各 Table 做不同的七次 Select
最後放在一各 StringGrid 裡面
其中七各Select 都有共同的時間 Time欄位
唯一不同的是數量
想要Order by Time desc

這又該如何達成呢?
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-05 17:11:39 IP:211.72.xxx.xxx 訂閱
用一句 SQL (UNION 多個 SELECT) 便只有一個 ClientDataSet, 為何須用七個?
用 UNION 各 SELECT 的 Table, 可以不是同一個, 但也可以是同一個呀!

若您執意要用七個 ClientDataSet, 那只好都先丟到 TStringList 做 Sort 再填到 StringGrid 了!
系統時間:2024-05-06 10:25:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!