设置重复ID,直到第一条记录重复(大容量加载csv文件)



我有一个通过大容量插入导入的文件,我想分配组ID/序列。我想分配ID,直到重复第一个字符的第一条记录。在这个例子中;A";。

我面临的挑战是如何实现这个例子,并像这个例子一样设置ID:

ID 数据
1 A000abcefd>
1 E00asoskdaok
1 C000dasdasok
2 A100abcasds
2 E100aandas
2 C100dsokdas

这里有一种方法,但鉴于您提供的信息有限,我将做出以下假设:

**表中的数据有一定的顺序。如果不是这样,这显然是行不通的。我用的是身份证,你用的是你所拥有的。

**表中的第一行具有您要查找的字符。

CREATE TABLE #tmp(ID int,   [data] varchar(20))
INSERT INTO #tmp
VALUES
(1, 'A000abcefd'),
(2, 'E00asoaskdaok'),
(3, 'C000dasdasok'),
(4, 'A100abcasds'),
(5, 'E100aandas'),
(6, 'C100adsokdas')

DECLARE @CHAR varchar(1)
SELECT @CHAR = (SELECT TOP 1 SUBSTRING([data],1,1) FROM #tmp ORDER BY ID)
SELECT SUM(CASE WHEN SUBSTRING([data],1,1) = @CHAR THEN 1 ELSE 0 END) 
OVER(ORDER BY ID ROWS BETWEEN UNBOUNDED PRECEDING and CURRENT ROW) SeqNum
,[data]
FROM #tmp

最新更新