我必须从列中获取记录的行,并构建一个包含两列的新表。SQL - 从列的记录中逐行检索并构建两列的列表
在原始表格列中会有一个9位数的字符,我必须将其作为Bill ID选取。对于每个帐单ID都会有一些消息。所以在我的新表中,它将是Bill ID和Message两列。
我必须从原始表中选择多达5条消息在帐单ID之下,或者如果我比5条消息早打了一个新帐单ID。
create table #t
(col2 nvarchar(4000))
insert into #t values
('No Bills Picked up for Processing'),
('Total 5 Bills picked up for Processing'),
('AB358399B'),
('XML Validation Failed'),
('CN290550T'),
('service Call Done'),
('Status : SUCCESSFULL'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('CN290570T'),
('service Call Done'),
('Status : SUCCESSFULL'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing'),
('No Bills Picked up for Processing')
select * into #billid from #t
where len(ltrim(rtrim(col2))) = 9
select * from #billid
select * from #t
-- Expected Results
--Bill Message
--------------------------
-- AB358399B XML Validation Failed
-- CN290550T service Call Done
-- Status : SUCCESSFULL
-- No Bills Picked up for Processing
-- No Bills Picked up for Processing
-- No Bills Picked up for Processing
-- CN290570T service Call Done
-- Status : SUCCESSFULL
-- No Bills Picked up for Processing
-- No Bills Picked up for Processing
-- No Bills Picked up for Processing
你是如何定义的顺序你的原始数据?从你发布的内容来看,这是不可能的,因为你没有任何东西可以订购。 –
您是否正在从文本文件加载?如果是这样,可以将一个标识(int)添加到您的导入结构中以创建适当的序列? –
约翰你是对的,是的,我从平面文件加载它。我可以添加一个标识列。 – goofyui