看板 Database 關於我們 聯絡資訊
我用的軟體是SAS 其中SQL語法與SQL SERVER 相似 想請問這樣的問題要怎樣去寫程式執行時比較快 假設有兩個表A、B A中有欄位 a1、a2、a3、a4、a5、a6a7、a8、a9、a10、...、a20 共20欄 B中有欄位 a1、a2、a3、a4、a5、a6b1、b2、b3、b4、...、b18 共24欄 現在想作表C 條件為 A.a1=B.a1 A.a2=B.a2 A.a3=B.a3 A.a4=B.a4 A.a5=B.a5 A.a6=B.a6 即C表有欄位 a1、a2、a3、a4、a5、a6 (from 條件) a7、a8、a9、a10、...、a20 (符合條件、from 表A) 共20欄 我的作法如下: proc sql; create table C as select * from A where exists (select * from B where A.a1=B.a1 and A.a2=B.a2 and A.a3=B.a3 and A.a4=B.a4 and A.a5=B.a5 and A.a6=B.a6); quit; 因為資料量很大 都要跑超過10小時,十分的耗時 想請問有沒有更好的寫法 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.14.83.28 ※ 編輯: zacaria 來自: 163.14.83.28 (07/20 13:32)
evernever:不熟SAS,但直覺是用 View, 還有你的語法好像沒有到38欄 07/20 14:03
※ 編輯: zacaria 來自: 163.14.83.28 (07/20 15:11) 謝謝提醒 我的問題敘述錯了 已改正 ※ 編輯: zacaria 來自: 163.14.83.28 (07/20 15:12)
tw70126:可以用inner join 吧 = = 07/21 20:59
grence:如果 tableB的欄位沒有用到,這種寫法有可能比 join快 07/21 23:05