Я создаю простую таблицу в SQLite3, используя следующее: sql сценарий:
drop table if exists projects;
CREATE TABLE projects(
"project_number" TEXT,
"project_manager" TEXT
);
insert into projects ("project_manager", "project_number")
values ("Bob", "11204568-001");
insert into projects ("project_manager", "project_number")
values ("Bill", "11204568-002");
insert into projects ("project_manager", "project_number")
values ("Jack", "11204568-003");
insert into projects ("project_manager", "project_number")
values ("Jill", "11204000");
insert into projects ("project_manager", "project_number")
values ("Fred", "11204569");
insert into projects ("project_manager", "project_number")
values ("Nancy", "11204569-003");
Затем я добавляю в эту таблицу столбец с именем main_project_number
, используя оператор alter table
:
alter table projects add column "main_project_number" integer;
Затем я хотел бы заполнить этот новый столбец только префиксом project_number_column
, чтобы получить следующий результат:
project_number project_manager main_project_number
-------------------- --------------- -------------------
11204568-001 Bob 11204568
11204568-002 Bill 11204568
11204568-003 Jack 11204568
11204000 Jill 11204000
11204569 Fred 11204569
11204569-003 Nancy 11204569
Итак, я попробовал оператор update
с некоторыми строковыми функциями sqlite, как определено здесь :
update projects set main_project_number = (select substr("project_number", 0, instr("project_number", "-")) from projects);
Это дало, однако, следующий результат, который не является что я хочу ...:
project_number project_manager main_project_number
-------------------- --------------- -------------------
11204568-001 Bob 11204568
11204568-002 Bill 11204568
11204568-003 Jack 11204568
11204000 Jill 11204568
11204569 Fred 11204568
11204569-003 Nancy 11204568
Что я здесь делаю не так?