0

結合するための個別の識別子を持たない 2 つのテーブルがあります。ただし、Table1 には、999ABCD の形式を含むテキスト文字列を含むフィールド (マイルストーン) があります。Table2 には、この情報も含む件名フィールドがあります。ただし、レコードの件名フィールド内のタイトルの一部としてランダムな場所に配置されます。

Table1.Milestone の値に基づいて 2 つのテーブル (Table1.Milestone から Table2.Subject) を結合し、Table2.Subject 内で一致するテキストを検索する方法はありますか?

ありがとう!

4

2 に答える 2

0

これが機能するかどうかはわかりませんが、正しい方向に進む可能性があります。

select * from Table1 T1
join Table2 T2
on T2.Subject LIKE '%' + T1.Milestone + '%'

うまくいったとしても、このような結合を行うことはお勧めしません。

于 2012-05-22T21:07:23.863 に答える
0

私は Access を使用していませんが、MS SQL で動作するようにしました。Access で CHARINDEX に似た関数を見つけることができれば、これでうまくいきます。

設定:

DECLARE @table1 TABLE (milestone varchar(20))
DECLARE @table2 TABLE (subj varchar(1000), details varchar(1000))

INSERT INTO @table1 VALUES ('999ABCD')
INSERT INTO @table1 VALUES ('999XYZ')

INSERT INTO @table2 VALUES ('Subject is 999ABCD', 'I should join only to 999ABCX')
INSERT INTO @table2 VALUES ('Subject 999XYZ is me', 'I should join only to 999xyz')
INSERT INTO @table2 VALUES ('Subject zzzzz is me', 'Nobody gets me')

実際のクエリ:

SELECT *
from @table1 t1
JOIN @table2 t2 ON CHARINDEX(milestone, subj) > 0

出力は次のとおりです。

milestone   subj    details
999ABCD Subject is 999ABCD  I should join only to 999ABCX
999XYZ  Subject 999XYZ is me    I should join only to 999xyz

それが役立つことを願っています!

デイブ

于 2012-05-22T21:09:02.657 に答える