我不是新手编程,而是新手到mssql。我已经在网上寻求帮助,但我无处可去。卡住试图在mssql中使用uiee
我有一个UIEE格式的图书清单文件。
UR|2706
AA|Parker, William Harwar
TI|RECOLLECTIONS OF A NAVAL OFFICER, 1841-1865:
XD|S
UR|15184
AA|Goodrich, Norma Lorre
TI|King Arthur
等等。正如你看到的每一行都被标记了一样,每条记录都以'UR'标记开始,并以'XD'标记结束。我已经把这个上传到了一个名为testuiee的mssql表格中,并带有列标签和数据。我试图用sql来识别这些字段,并将它们放到另一个名为btdata的表中。例如,把UR数据成册ID,AA为作者等
Book_id Author Title
2706 Parker, William Harwar RECOLLECTIONS OF A NAVAL OFFICER, 1841-1865:
15184 Goodrich, Norma Lorre King Arthur
我写的作品,但只把最后一个记录到btdata表中的脚本。我尝试了条件处理(while,if,case)和一个游标,但结果总是一个记录,最后一个。亚瑟王在这个例子中。我确定它是因为我正在逐行地思考事物,而不是数据块,但我无法理解这一点。
这是我的代码到目前为止。
DECLARE @bookid nvarchar(max),
@author nvarchar(max),
@title nvarchar(max)
SELECT tag, data from testuiee
SELECT @bookid = data from testuiee where tag = 'UR'
SELECT @author = data from testuiee where tag = 'AA'
SELECT @title = data from testuiee where tag = 'TI'
IF @bookid IS NOT NULL
INSERT INTO btdata (book_id, author, title)
VALUES (@bookid, @author, @title)
GO
我确实尝试使用'XD'标签有条件地执行插入,但结果相同。
任何帮助将不胜感激。
你有一个行数场或类似的'testuiee'表订购的?请记住,数据库中的行是无序的,即使它们经常显示为处于插入顺序。 – 2014-10-07 21:22:23
我没有。感谢您的解释。 – new2sql 2014-10-08 20:35:22