Sqlite 根据条件顺序更新字段
我有这个当前的示例数据集Sqlite 根据条件顺序更新字段,sqlite,Sqlite,我有这个当前的示例数据集 NEW_ID Name OLD_ID New_Name 123 Hello XYZ 124 How XYZ 125 Are XYZ 126 My ABC 127 Name ABC 128 Is ABC 129 Alex ABC 我的目标是将名称字段修改为一个新的命名约定,以存储在新的名称中,即Hello_Part_1、How_Part_2
NEW_ID Name OLD_ID New_Name
123 Hello XYZ
124 How XYZ
125 Are XYZ
126 My ABC
127 Name ABC
128 Is ABC
129 Alex ABC
我的目标是将名称字段修改为一个新的命名约定,以存储在新的名称中,即Hello_Part_1、How_Part_2、Are_Part_3,其中所有这些记录共享一个旧的_ID,在本例中为XYZ。类似地,对于My_Part_1,Name_Part_2,是_Part_3,Alex_Part_4等,ID等于ABC
我正在使用SQLLite导入.CSV文件
命名约定如下所示:NAME_PART_X,其中X在旧id的“组”内的记录数上递增。SQL不按顺序工作;必须为每一行单独表示操作 所需的数字是具有相同旧ID且新ID与当前行的新ID相同或更小的行数。 这可以通过以下公式计算:
UPDATE MyTable
SET New_Name = Name || '_Part_' ||
(SELECT COUNT(*)
FROM MyTable AS T2
WHERE T2.OLD_ID = MyTable.OLD_ID
AND T2.NEW_ID <= MyTable.NEW_ID);