【发布时间】:2020-06-24 19:18:26
【问题描述】:
我有两个表格,在下面的结构中
Table 1
Type ID NAME FROMPOS SIZE
.doc 1 A Number 4 9
.doc 1 C Number 14 10
.doc 1 Total 24 10
.doc 1 Date 36 8
.doc 1 Data null null
表 2
ID TYPE NAME SEQUENCE SIZE SKIP
1 doc A Number 1 9 3
1 doc C Number 2 10 1
1 doc Total 3 10 0
1 doc Date 4 8 2
1 doc Data 5 80 0
1 doc Type 6 1 0
表1和表2的解释,表1和2中的记录是“csv”文件的结构
table1 和 table2 都具有类型和 ID,所有记录都相同。
表一说明:
在第一条记录中“A Number”和“FROMPOS”(FROM POSITION)的值为4,这意味着前三个字符将为空格,帐号将在其后,即从第4位到第12位作为“A Number”的“size”是 9,对于“C Number”,我们跳过一个位置并从 14 开始到 23,因为该字段的“size”是 10,对于所有其他记录也是如此。 Table1列中的“NULL”可以忽略
表2说明:
Table2没有“FROMPOS”列,但里面有序列,表示在csv中输入记录的顺序,Table1是旧格式,table2是新格式。
因此,在两个表中,记录实际上将表示相同的格式,但方式不同。两个表中的类型、ID 和 SIZE 将相同
所以在表 2 中,“A Number”的“SEQUENCE”为 1,“SKIP”是要跳过的字符数,即此处的“3”,因此它将从第 4 位开始,应该与“FROMPOS”匹配在表1中
同样,“C Number”的“SEQUENCE”为 2,“SKIP”为 1,因此它将在“A Number”之后跳过 1 个位置,即它将跳过第 13 个位置并从 14 开始,“SIZE”为 10,所以23 点结束。
同样,“Total”将从 24 开始,因为没有“SKIP”,长度为 10,并在第 34 位结束。同样适用于所有记录。
我的目标是写一个 SQL 来确保表 2 中的 SEQUENCE、SKIP、SIZE 与表 1 中的 FROMPOS & SIZE 匹配
在 CSV 文件中考虑这种格式,
123456789, 1234567890,1000000, 24/06/20
注意:我已尝试加入表格并成功,但我无法将逻辑写入 确保表 2 中的 SEQUENCE、SKIP、SIZE 与表 1 中的 FROMPOS & SIZE 匹配。 如果他们匹配我需要'成功',如果他们不匹配需要'失败'
我是SQL新手,我开始做这个项目来学习,坚持了4天。请帮助解决这个问题
【问题讨论】: