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

希望将一个table进行排序后插入到另一个table中?

尚未結案
liangzai
初階會員


發表:77
回覆:91
積分:33
註冊:2004-08-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-16 10:49:53 IP:219.137.xxx.xxx 未訂閱
请问这样的语句为什么不行? 在BDE中, with dm.Query1 do begin close; sql.Clear; sql.Text:='insert into ":hr:g6.db" select * from ":hr:g4.db" order by department,employee_no'; prepare; open; end; 应该怎么去写?请指教,谢谢!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-16 11:22:17 IP:202.62.xxx.xxx 未訂閱
您好﹗    此為無回傳資料的SQL語法﹐故應將Open方法改為ExecSQL﹒ with dm.Query1 do begin close; sql.Clear; sql.Text:='insert into ":hr:g6.db" select * from ":hr:g4.db" order by department,employee_no'; prepare; ExecSQL; end; ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
liangzai
初階會員


發表:77
回覆:91
積分:33
註冊:2004-08-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-16 11:34:20 IP:219.137.xxx.xxx 未訂閱
接着会出现错误:"invalid use of keyword ,token:order...." 是不是这种插入方式不接受order by ?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-16 11:57:51 IP:202.62.xxx.xxx 未訂閱
您好﹗    應該不是Order By的問題﹒ 從錯誤信息上來看是使用了KeyWord﹐即使用了關鍵字﹐從SQL語句中的欄位名稱中﹐應該沒有使用到關鍵字﹐所以檢查看看是否是資料表名稱的問題﹐是否可以更改資料表名稱為較簡單的名稱﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
liangzai
初階會員


發表:77
回覆:91
積分:33
註冊:2004-08-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-16 13:55:13 IP:219.137.xxx.xxx 未訂閱
资料表名称没有问题啊,之前的insert,update语句都是这样写的,请问还有没有其他的方法可以达到目标?
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-16 14:13:43 IP:210.64.xxx.xxx 未訂閱
你好 基本上在新增的時候排序好像是沒有意義的耶!! 因為新增過去之後,資料的順序應該是依照新增的table的鍵值排序的!! Pillar Wang
------
Pillar Wang
liangzai
初階會員


發表:77
回覆:91
積分:33
註冊:2004-08-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-16 14:33:37 IP:219.137.xxx.xxx 未訂閱
hi,pillar62 请教几个问题: 1.insert 语句是不能使用order by 的,是不是? 2.我这样做的目的主要是要对一个table按照department,employee_no,date进行排序,里面的数据是通过append从txt文档中一条条读进来的,所以非常的乱,现在希望能够正常排序,怎么办?
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-03-16 14:37:26 IP:210.64.xxx.xxx 未訂閱
你好 剛剛忘記說,在sql裡面insert的話,應該是不能用 order by!! Pillar Wang
------
Pillar Wang
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-03-16 14:44:22 IP:210.64.xxx.xxx 未訂閱
你好 如果table是實體的,可以將那三個欄位設定成鍵值!!如果那三個欄位不是鍵值,也可以用query在select出來的時候再加上order by!! 如果是虛擬的table可以用ado或是 clientdataset利用裡面的排序功能處理!! Pillar Wang
------
Pillar Wang
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-03-16 14:50:44 IP:202.62.xxx.xxx 未訂閱
您好﹗    此種Insert語句應是可以使用Order By子句的﹐我剛才用Access資料庫做了類型的測試﹐在Insert的時候亦是按照Order By子句的順序新增的﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-03-16 15:16:13 IP:210.64.xxx.xxx 未訂閱
嗯 access裡面是可以,但是在paradox的資料庫好像不行!!還沒有測試mssql和oracle!! Pillar Wang
------
Pillar Wang
系統時間:2024-06-29 23:00:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!