0

という名前のテーブルが 1 つありますDocument。その中に 2 つの列があります:InventorAttorney. Attorney = Inventor の行を探したい。

Attorney = Inventor の「定義」に当てはまるサンプル データは次のとおりです。

Inventor: Tom Kaufmann
Attorney: Tom Kaufmann

Inventor: Kaufmann
Attorney: Kaufmann; Tom

Inventor: Kaufmann; T
Attorney: Kaufmann; Tom

Inventor: Kaufmann; Tom
Attorney: Kaufmann; T

Inventor: Kaufmann; Tom, Somi; Jack
Attorney: Kaufmann; Tom

Inventor: Kaufmann; Tom,
Attorney: Kaufmann; Tom, Somi; Jack

上記のすべてのケースで、弁護士 = 発明者と言えます。どうやって比較するの?基本的に区切り記号と戻り値に基づいてデータを分割できる分割関数 (テーブル値関数) があります。名前を分割してから、カーソルを作成して各行を処理し、他の行と比較する必要があると考えています。しかし、それではカーソルが多すぎて、面倒になる可能性があります。これらのデータを比較するより良い方法はありますか? あなたが私の質問を理解したことを願っています。そうでない場合は、お知らせください。

4

1 に答える 1

0

これでうまくいくかもしれません。列名を交換する必要があります。基本的には、位置を最短に一致させるだけです

where  SUBSTRING(caseID  ,1, CASE WHEN len(mimeType) < len(caseID) THEN len(mimeType) else len(caseID) END) 
   =   SUBSTRING(mimeType,1, CASE WHEN len(mimeType) < len(caseID) THEN len(mimeType) else len(caseID) END)
于 2012-08-25T19:40:01.603 に答える