0

コードのリストと、人々に関連する情報を含むメインテーブルとの間に多対多の関係があります。異なるテキスト値を持ついくつかの異なるコードがあり、それらはすべて同じもののバリエーションです。ANYそれらが存在するかどうかを確認したい。これを行う私の方法は、を使用する予定LIKE%what i'm looking for%です。特定の文字列が他のテーブルの 1 つに存在するという事実に基づいて、メイン テーブルのバイナリ値を更新したいと考えています。
ここに画像の説明を入力

何も台無しにすることなく解決できる限り、クエリは次のとおりです。

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 に答える