我有一张ICD9代码表,其中有几个代码编码不正确。我想插入" No"如果在另一个表中找不到匹配项,则进入该表中的列。
例如,我有一个代码292300,它应该是2923.我想要像
这样的东西 SELECT icd9, icd10 from icd9codes, GEM where icd9 = icd10;
如果找不到匹配的icd9代码,请执行INSERT INTO
。
注意:GEM表包含icd9代码及其对icd10的等效映射。
答案 0 :(得分:0)
我们需要你的数据库架构,与此同时,黑暗中是一个镜头。 先备份你的桌子。
UPDATE icd9codes
LEFT JOIN GEM ON
icd9codes.icd9 = GEM.icd9
SET icd9codes.icd9 = COALESCE(GEM.icd10,'No')
答案 1 :(得分:0)
如果要在icd9codes
中插入新行,那么这是一个非常简单的SELECT
查询。
insert into icd9codes (icd9)
select icd10
from GEM;
这是你问题的最直接的答案。但是,我怀疑您拥有icd9codes
中的现有行,并且如果icd9
icd10
GEM
中存在update icd9codes
set the_new_column = 'No'
where exists (
select 1
from GEM
where icd10 = icd9codes.icd9
);
值,您希望更新这些行的列值
icd9codes
这表示,对于GEM
中the_new_column
中具有相应值的任何行,请将其No
值设置为rename table(:posts), :title, to: :summary
。