我已经创建了一个表并且批量插入了一个文件,该文件现在都在'Column0'中。
文件格式如下:
#text1 "123123" 20180305 "text 123"
{
#num2 xxxxxx 123.12 20180101
#num3 yyyyyy 321.32 20180102
#num3 zzzzzz 111.11 20180103
}
#text2 "332132" 20180203 "text 433"
{
#num8 jjjjjj 222.22 20180104
#num4 uuuuuu 11.23 20180204
}
...
等等。我想要做的是进行查询以将其格式化为
numNr numAmount numDate textNr
xxxxxx 123.12 20180101 123123
yyyyyy 321.32 20180102 123123
zzzzzz 111.11 20180103 123123
jjjjjj 222.22 20180104 332132
uuuuuu 11.23 20180204 332132
换句话说,我希望将#text1中的数字绑定到它后面的{}之间的所有行,然后当我按下#text2之类的另一个文本编号时,我想将此文本编号绑定到此后的行数字等。有点难以解释,但希望你得到它,否则让我知道,我会尝试进一步解释。
怎么可以这样做?
更新: 我只是批量插入数据,因为它以这种方式格式化,所有内容都在column0中,即Column0 varchar(max)。
我无法从另一个线程中解决的问题是我不想循环遍历所有行,而在第一行我找到以#text1开头的行,我想要添加下一个数字它,在这种情况下“123123”到一个新表
textNumber ID
123123 1
然后我希望{}内的所有数字具有相同的ID,例如另一个带
的表numNumber amount date ID
xxxxxx 123.12 20180101 1
然后计划加入这些以便我得到结果
numNumber amount date ID textNumber
xxxxxx 123.12 20180101 1 123123
因此,在编程语言中,我想循环遍历表的每一行并设置ID = 1,并在循环到达左侧(Column0,5)='#text'的行时将其添加到新列。之后,我希望将此ID添加到以左开头的所有后续行(Column0,8)='#num'。
在此之后,当我点击以左(Column0,5)='#text'开头的另一行时,我希望ID更新为ID = 2,然后这个新ID将被添加到以下行开始左(Column0,8)='#num'。
依此类推....但据我所知,循环部分在SQL中并不是很好......
这有意义吗?我怎么能以最简单的方式做到这一点?