gpt4 book ai didi

sql - 我想根据其他列所需条件为 Ranks 列插入值

转载 作者:行者123 更新时间:2023-12-04 20:56:18 25 4
gpt4 key购买 nike

declare @count int = 0

while (@count != 3156)
begin
while(ErrorCode not like 'm%')
begin
insert into #temp(Ranks)
values(@count)
end

set @count = @count + 1
end

我有一个包含 3 列 ErrorCodeErrorCountRanks 的临时表,我必须在 Ranks< 中插入相同的值 列,每当 ErrorCode 的初始值重复时。我现在在 Ranks 列中有 NULL:

ErrorCode               ErrorCount            Ranks
----------------------------------------------------
module_position A1_16__1 1
head_id HZ0C1 000877 1
start_dt 2018-09-10 00:18:27 1
module_position A2_16__1 2
head_id HZ0C1 000878 2
start_dt 2018-09-10 00:18:27 2

我希望 Ranks 列的输出如上。请注意,每当我必须插入新排名时,初始值始终是 module_position

最佳答案

试试这个:

DECLARE @DataSource TABLE
(
[RowID] INT
,[ErrorCode] VARCHAR(32)
,[ErrorCount] VARCHAR(32)
);

INSERT INTO @DataSource ([RowID], [ErrorCode], [ErrorCount])
VALUES (1, 'module_position', 'A1_16__1')
,(2, 'head_id HZ0C1', ' 000877')
,(3, 'start_dt', ' 2018-09-10 00:18:27')
,(4, 'module_position', 'A2_16__1')
,(5, 'head_id HZ0C1', ' 000878')
,(6, 'start_dt', ' 2018-09-10 00:18:27')

SELECT [ErrorCode]
,[ErrorCount]
,SUM(IIF([ErrorCode] = 'module_position', 1, 0)) OVER (ORDER BY [RowID])
FROM @DataSource;

请注意,您可以通过某种方式对行进行正确排序。您不能假设在不指定唯一的排序标准的情况下从表中读取它们总是会给您相同的期望结果。

在上面的示例中,我使用了 RowID 列。例如,如果您有创建日期,则可以按它排序。

如果您不对行进行排序,您可以以一个错误的 head_id 结尾,以便与另一个错误分组。

关于sql - 我想根据其他列所需条件为 Ranks 列插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53774538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com