我在代码列表与主表之间存在多对多关系,其中包含与其相关的信息。有几个不同的代码具有不同的文本值,这些代码都是同一个东西的变体。我想检查它们是否存在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'之前,这是一个较旧的模式。
答案 0 :(得分: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
)