我有一张 ICD9 代码表,其中有几个没有正确编码。如果在另一个表中找不到匹配项,我想在该表的列中插入“否”。
例如,我有一个代码 292300,它应该是 2923。我想要类似的东西
SELECT icd9, icd10 from icd9codes, GEM where icd9 = icd10;
如果找不到 icd9 代码的匹配项,则执行INSERT INTO
.
注意:GEM 表包含 icd9 代码及其对 icd10 的等效映射。
同时,我们需要您的数据库模式,这是在黑暗中的一枪。先备份你的桌子。
UPDATE icd9codes
LEFT JOIN GEM ON
icd9codes.icd9 = GEM.icd9
SET icd9codes.icd9 = COALESCE(GEM.icd10,'No')
如果要在 中插入新行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
。