0

我在代码列表和主表之间存在多对多关系,主表中包含与人员相关的信息。有几个不同的代码具有不同的文本值,它们都是同一事物的变体。我想检查ANY它们是否存在。我这样做的方法是使用LIKE%what i'm looking for%. 我想根据我的其他表之一中存在某个字符串这一事实来更新我的主表中的二进制值。
在此处输入图像描述

这是我可以在不弄乱任何东西的情况下解决它的查询。

UPDATE tblVisits
SET variableOfInterest=1
FROM tblVisits INNER JOIN
icd_jxn ON tblVisits.kha_id = icd_jxn.kha_id INNER JOIN
tblICD on icd_jxn.icd_fk=tblICD.ICD_ID
WHERE (tblICD.Descrip LIKE N'%text of interest%')

由于有这么多不同的代码具有共同的属性,即在其描述中包含特定字符串,我觉得这将是最好的方法,而不是使用大量的 OR 语句。在我决定在 tblVisits 中添加我的 'variableofInterest' 之前,这是一个较旧的模式。

4

1 回答 1

1

你可以重写它EXISTS

UPDATE tblVisits
SET variableOfInterest = 1
FROM tblVisits 
WHERE EXISTS
      ( SELECT *
        FROM icd_jxn 
          INNER JOIN tblICD 
            ON icd_jxn.icd_fk = tblICD.ICD_ID
        WHERE tblICD.Descrip LIKE N'%text of interest%'
          AND tblVisits.kha_id = icd_jxn.kha_id
      )
于 2012-04-11T12:41:45.407 回答