テーブルにname
以上の列があることを願っています。テーブルを結合する必要があります。そのため、同じ値を共有する列を持つ必要があります。このような何か:あなたが参加するPK型の列を持っていない場合、あなたはストリングに参加しようとすることができます
select
a.*
FROM Table2 b
inner join Table1 a ON a.pk=b.pk
、ほとんどあなた:ここ
table1
------
PK Name
-- ----------------
1 Frank Wisely
2 Albert Smith
3 Tony Gonzalez
4 Peter Nicholas
5 Andrew Wonder
6 Adams Tony
table2
------
PK Name
-- ----------------
2 Smith
5 Wonder
6 Tony
がそれらを結合する方法であります誤った一致のために結果にエラーが発生する可能性があります。サンプルデータに6行のデータがある場合は、すべて正常に見えますが、ジョンスミス、紙幣スミス、マイクスミス、ジョンブラウン、マイクブラウンの場合はどうなりますか?あなたはどうやってジョンを見つけるのですか?あなたはLIKEを使ってテーブルに参加することができますが、これは奇妙なことです。
このクエリは、あなたが求めているものを行います。
select
a.*
FROM Table2 b
inner join Table1 a ON a.Name like '%'+b.Name+'%'
作業例を:
create table Table1 (name varchar(100), junk varchar(5))
insert into Table1 values ('Frank Wisely','aaa')
insert into Table1 values ('Albert Smith','bbb')
insert into Table1 values ('Tony Gonzalez','ccc')
insert into Table1 values ('Peter Nicholas','ddd')
insert into Table1 values ('Andrew Wonder','eee')
insert into Table1 values ('Adams Tony','fff')
Create table Table2 (name varchar(100))
insert into Table2 VALUES ('Tony')
insert into Table2 VALUES ('Smith')
insert into Table2 VALUES ('Wonder')
select
a.*
FROM Table2 b
inner join Table1 a ON a.Name like '%'+b.Name+'%'
OUTPUT:
name junk
---------------- -----
Albert Smith bbb
Tony Gonzalez ccc
Andrew Wonder eee
Adams Tony fff
(4 row(s) affected)
本当にありがとうございました。 '%' + b.Name + '%'は私が探していたものでした。すばらしいです!!! –
@Tony Kim、この回答があなたの質問を解決した場合は、その左上のチェックマークをクリックする必要があります。これはあなたの正解であることを示します。 –