看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: [問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: data如下: (to) (from) sql_command from_t insert_t table_t 想整理成 lv obj dep select ... form t1 t1 0 t1 ----------------------------------------------- insert into t2 t2 1 t2 t1 select ... from t1 t1 0 t1 ----------------------------------------------- insert into t5 t5 2 t5 t4 select * 1 t4 t3 from t4 t4 0 t3 join (select ... from t3) t3 ----------------------------------------------- insert into t9 t9 1 t9 t8_1 select * from 1 t9 t8_2 (select ... from t8_1) t8_1 0 t8_1 join 0 t8_2 (select ... from t8_2) t8_2 ------------------------------------------------ delete from t11 t11 0 t11 ------------------------------------------------ delete from t13 t13 1 t13 t12 where in (select ... from t12) t12 0 t12 ------------------------------------------------ create table new1 as new1 1 new1 new (select ... from new) new 0 new ------------------------------------------------ create table new2 new2 0 new2 想整理成以下資料 obj dep lv t1 0 t1 t2 1 t5 t4 2 t4 t3 1 t3 0 t9 t8_1 1 t9 t8_2 1 t8_1 0 t8_2 0 t11 0 t13 t12 1 t12 0 new1 new 1 new 0 new2 0 上面範例資料實際是沒有 -------- 是為了閱讀方便所以將資料分組並加上 ------- 有(select..)的話lv會+1 join上下的(select..) table lv 是相同的 先把問題po上來, 回家也會再想想怎麼做~ 若有大大願意協助非常感謝! 回報一下, 目前還是用EXCEL先做, 整個流程大致如下: 1、將sql語法貼到excel A1,用許多欄位取出 select,insert into,delete...關鍵字是否存在 2、檔案中語法段落間有空行,可編碼成不同group 3、抓出table名稱,以table數量+考慮join是否存在判斷level 大致上是這樣做,但事實上仍有許多狀況, 例如join的上下table是同一個,但篩選的資料不同, 總之目前還是手工在做整理 QQ 這種半結構式的data整理起來還真痛苦 QQ [關鍵字]: level sql 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.79.246 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1482913108.A.F96.html
cywhale: 看不懂data如下那些列 sql?是指sql command還是資料一欄? 12/28 20:54
cywhale: from_t?這些是資料還是query操作過程?怎對應obj,dep,lv? 12/28 20:57
criky: 這些都是sql指令,目前是先用excel取出sql command與table 12/28 21:13
※ 編輯: criky (27.147.47.152), 12/28/2016 21:29:31
cywhale: 這樣看懂了XD感覺只能用for..if else去掃 因lv和命令逆反 12/28 23:36
cywhale: 就是偵測(insert or delete)...(select or create)當作 12/28 23:38
cywhale: 一段,在這一段中用if else去處理lv,obj,dep..就是硬做.. 12/28 23:40
criky: 我的資料有判斷insert,delete,create 有/無 的欄位 12/29 07:48
criky: 還有一個問題就是編流水號,自己看知道那些列是同一段語法 12/29 07:48
criky: 一堆指令不知道怎麼分@@ 12/29 07:49
※ 編輯: criky (27.147.47.152), 12/29/2016 22:20:09
cywhale: 你的問題比較像parse sql cmd..在第二虛線框內 from t1; 12/29 23:59
cywhale: insert into t2為何同一組? 倒數第二虛線框sel..from new 12/30 00:00
cywhale: 為何和create tbl new1同一組?一個new, 一個new1 12/30 00:01
criky: 有些舉例不太完整,事實上sql cmd有些也不太完整 12/30 07:29
criky: insert into 漏了lv0, 我再補上 12/30 07:30
criky: 通常create table1 是從 select from table2來的 12/30 07:31
※ 編輯: criky (27.147.47.152), 12/30/2016 07:36:56
cywhale: 我另外發文回答你目前案例的處理 12/30 07:32