まずカラムから文字列の一部分を切り出すには
select substr(name, 1, 4) from exome;
これでexomeというテーブルのnameというカラムから、先頭〜4文字目までを選び出すことになる。
選びだした文字列でidというカラムをアップデートするなら、
update exome set id = (select A.s_id from (select name, substr(name, 1, 4) as s_id from exome) as A where exome.name = A.name);
これでいけるはず。
さらにAxxxxxxとAで始まるところだけ7文字切り出してアップデートするなら
update exome set id = (select A.s_id from (select name, substr(name, 1, 7) as s_id from exome where name like "A%" ) as A where exome.name = A.name);
こんな感じか。
別テーブルの対応表に従ってテーブルをアップデートする。
tableA
A_id, B_id A000001, B0001 A000002, B0002
tableB
Samplename, A_id, B_id A000001:XYZ, A000001 A000002:ABC, A000002 B0001:MNL, , B0001
こういうテーブル構成でtableBのB_idの空欄をtableAを参照してB_idで埋めたい。
update tableB set B_id = (select tableA.B_id from tableA where tableB.A_id = tableA.A_id);