我有一个庞大的数据表,其中部件号描述没有一致地输入,现在我需要找出一种方法来协调它们而不使用每个的更新语句,这是一个例子:
Part number Description
abcd1 red lamp
abcd1 red lamp w/ plug
abcd2 blue lamp
abcd2 blue lamp w/ plug
abcd3 green lamp
abcd3 green lamp w/ plug
如何获取第一个描述并将其插入到具有相同部件号的所有后续记录中?实际上,只要它们都可以归为一个记录,它就不必是第一个。记录是各种销售订单,有一个日期列,这就是为什么有多个记录具有相同的部件号。谢谢!
答案 0 :(得分:0)
假设您有日期或序列ID,您可以使用可更新的CTE:
with toupdate as (
select t.*,
first_value(description) over (partition by partnumber order by ?) as first_description
from t
)
update toupdate
set description = first_description
where description <> first_description;
但是,您应该专注于修复数据模型。您应该有一个parts
表,每个部分有一行,并且描述只存储在一个地方。这将是构建数据的正确方法。
如果有关部件的描述性信息可能会随着时间的推移而发生变化,那么您可以将其设为类型2维度,并使用有效和结束日期。