こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

2つのテーブル間でのあいまい検索について

はじめまして、SQLを勉強はじめたばかりのものです。

現在2つのテーブル間であいまい検索を行いたいのです。

テーブル1
id 配列
1 ABCDEFG
2 HIJKLMN
3 OPQRSTU
4 VWXYZ12

テーブル2
id 配列
1 CDE
2 BCDEF
3 OPQR
4 HIJKLM
5 DEFG
6 VWXY

上記のような2つのテーブルで、実際は数万行あります。
LIKE演算子でテーブル2の配列情報を順次テーブル1に
あてはめる方法がわかりません。

結果としては
id  配列    id 配列
1 ABCDEFG   1 CDE
1 ABCDEFG   1 BCDEF
.
.
.
のようなテーブルが作成されることを期待しています。
SQLクエリだけでは作成は無理でしょうか?
上級者の皆様ご助言お願いします。

投稿日時 - 2014-11-18 17:38:03

QNo.8829425

困ってます

質問者が選んだベストアンサー

select T1.id, T1.配列, T2.id, T2.配列
from テーブル1 as T1 inner join テーブル2 as T2 on CHARINDEX(T2.配列, T1.配列) > 0

って感じでどうかな?試してないけど。

投稿日時 - 2014-11-18 17:51:44

補足

kawais070さん、さっそくのお返事ありがとうございます!
とても勉強になります。

さっそく試してみたのですが、CHARINDEXのところでerrorになりました。

メッセージ 4145、レベル 15、状態 1、行 4
条件が必要なコンテキストに対し、')' 付近でブール型以外の式が指定されました。

CHARINDEX(str1,str2)文字列str2内で部分文字列str1が最初にあらわれる位置を返すとありました。たぶん期待している形ではないような感じです。

投稿日時 - 2014-11-18 18:34:56

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

> さっそく試してみたのですが、CHARINDEXのところでerrorになりました。

SQLの最後の > 0 を入力していないのでは?

投稿日時 - 2014-11-18 19:58:41

お礼

kawais070さん

>0を入力忘れていました!
>0を入れたところ、期待通りの結果になりました。
こんなに簡単なクエリでできるとは思いませんでした。
勉強不足を痛感しました。

本当にありがとうございました!

投稿日時 - 2014-11-20 09:13:16

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-