作者criky (立业成家)
看板R_Language
标题[问题] sql 指令阶层资料整理
时间Wed Dec 28 16:18:24 2016
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1482913108.A.F96.html
1F:→ cywhale: 看不懂data如下那些列 sql?是指sql command还是资料一栏? 12/28 20:54
2F:→ cywhale: from_t?这些是资料还是query操作过程?怎对应obj,dep,lv? 12/28 20:57
3F:→ criky: 这些都是sql指令,目前是先用excel取出sql command与table 12/28 21:13
※ 编辑: criky (27.147.47.152), 12/28/2016 21:29:31
4F:推 cywhale: 这样看懂了XD感觉只能用for..if else去扫 因lv和命令逆反 12/28 23:36
5F:→ cywhale: 就是侦测(insert or delete)...(select or create)当作 12/28 23:38
6F:→ cywhale: 一段,在这一段中用if else去处理lv,obj,dep..就是硬做.. 12/28 23:40
7F:→ criky: 我的资料有判断insert,delete,create 有/无 的栏位 12/29 07:48
8F:→ criky: 还有一个问题就是编流水号,自己看知道那些列是同一段语法 12/29 07:48
9F:→ criky: 一堆指令不知道怎麽分@@ 12/29 07:49
※ 编辑: criky (27.147.47.152), 12/29/2016 22:20:09
10F:→ cywhale: 你的问题比较像parse sql cmd..在第二虚线框内 from t1; 12/29 23:59
11F:→ cywhale: insert into t2为何同一组? 倒数第二虚线框sel..from new 12/30 00:00
12F:→ cywhale: 为何和create tbl new1同一组?一个new, 一个new1 12/30 00:01
13F:→ criky: 有些举例不太完整,事实上sql cmd有些也不太完整 12/30 07:29
14F:→ criky: insert into 漏了lv0, 我再补上 12/30 07:30
15F:→ criky: 通常create table1 是从 select from table2来的 12/30 07:31
※ 编辑: criky (27.147.47.152), 12/30/2016 07:36:56
16F:推 cywhale: 我另外发文回答你目前案例的处理 12/30 07:32