如何根据第 1 列更新第 2 列,然后根据第 2 列更新第 3 列
How do I update column 2 based on column 1, and then column 3 based on column 2
我正在使用现有的 table,第 2 列和第 3 列中的数据缺失或不正确,因此我需要根据第 1 列更新这些列,然后在第 2 列更新后更新这些列。
第 1 列是车辆 "class"(大型汽车、小型 suv 2wd、皮卡 4wd 等)。
第 2 列应该是基于第 1 列中车辆 class 的 "type_id"(编号 1-6)。
然后第 3 列是基于第 2 列中类型 ID 的车辆 "type"(轿车、皮卡等)。
更新第二列"type_id"我尝试了以下几种变体:
UPDATE mytable
SET type_id = CASE
WHEN "class" = 'Compact Cars' then '1' ELSE type_id
WHEN "class" = 'Midsize Station Wagons' then '3' ELSE type_id
WHEN "class" = 'Minivan - 2WD' then '2' ELSE type_id
WHEN "class" = 'Minivan - 4WD' then '2' ELSE type_id
以此类推
第 1 列中大约有 30 个不同的变量需要与第 2 列中的 ID 号对应。从那里我需要使用与第 2 列中的编号对应的基本车辆类型更新第 3 列。
感谢任何帮助。
我真的不明白这里迭代逻辑的意义:据我了解你的问题,你可以将类型 ID 和类型关联到每个 class。
table 值在这里可能会派上用场:
update mytable t
set type_id = x.type_id, type = x.type
from (
values
('Compact Cars', 1, 'sedan'),
('Midsize Station Wagons', 3, 'foo'),
('Minivan - 2WD', 2, 'pickup'),
('Minivan - 4WD', 2, 'pickup'),
) x(class, type_id, type)
where x.class = t.class
如果您要执行大量转码,将它们全部存储在一个 table 中会更简单,您可以直接加入查询。
我正在使用现有的 table,第 2 列和第 3 列中的数据缺失或不正确,因此我需要根据第 1 列更新这些列,然后在第 2 列更新后更新这些列。
第 1 列是车辆 "class"(大型汽车、小型 suv 2wd、皮卡 4wd 等)。 第 2 列应该是基于第 1 列中车辆 class 的 "type_id"(编号 1-6)。 然后第 3 列是基于第 2 列中类型 ID 的车辆 "type"(轿车、皮卡等)。
更新第二列"type_id"我尝试了以下几种变体:
UPDATE mytable
SET type_id = CASE
WHEN "class" = 'Compact Cars' then '1' ELSE type_id
WHEN "class" = 'Midsize Station Wagons' then '3' ELSE type_id
WHEN "class" = 'Minivan - 2WD' then '2' ELSE type_id
WHEN "class" = 'Minivan - 4WD' then '2' ELSE type_id
以此类推
第 1 列中大约有 30 个不同的变量需要与第 2 列中的 ID 号对应。从那里我需要使用与第 2 列中的编号对应的基本车辆类型更新第 3 列。
感谢任何帮助。
我真的不明白这里迭代逻辑的意义:据我了解你的问题,你可以将类型 ID 和类型关联到每个 class。
table 值在这里可能会派上用场:
update mytable t
set type_id = x.type_id, type = x.type
from (
values
('Compact Cars', 1, 'sedan'),
('Midsize Station Wagons', 3, 'foo'),
('Minivan - 2WD', 2, 'pickup'),
('Minivan - 4WD', 2, 'pickup'),
) x(class, type_id, type)
where x.class = t.class
如果您要执行大量转码,将它们全部存储在一个 table 中会更简单,您可以直接加入查询。