【SQL SERVER2000】

テーブルAとテーブルBを使い、下記のような検索結果を表示させるクエリの記述を教えてください。

@テーブルA(商品コード)
12312345
A123
A12345678
1234A


@テーブルB(商品コードパターン,商品名)
A@@@@@@@@,商品A
A@@@,商品B
123@@@@@,商品C
@@@@A,商品D


@検索結果
12312345,商品C
A123,商品B
A12345678,商品A
1234A,商品D


以上よろしくお願い致します。

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:2009/02/12 16:04:57
  • 終了:2009/02/12 17:01:37

ベストアンサー

id:beatgoeson No.1

beatgoeson回答回数128ベストアンサー獲得回数142009/02/12 16:30:50

ポイント35pt

以下でいかがでしょうか。URLはダミーです。

http://www.yahoo.co.jp/

--------------------------------------------------------------

select

 a.商品コード,

 b.商品名

from テーブルA a, テーブルB b

where

 a.商品コード like replace(b.商品コードパターン,'@','_') and

 len(a.商品コード) = len(b.商品コードパターン)

--------------------------------------------------------------

id:db_Magician

回答ありがとうございます。

想定どおりの動きになりました。

2009/02/12 16:53:30

その他の回答(1件)

id:beatgoeson No.1

beatgoeson回答回数128ベストアンサー獲得回数142009/02/12 16:30:50ここでベストアンサー

ポイント35pt

以下でいかがでしょうか。URLはダミーです。

http://www.yahoo.co.jp/

--------------------------------------------------------------

select

 a.商品コード,

 b.商品名

from テーブルA a, テーブルB b

where

 a.商品コード like replace(b.商品コードパターン,'@','_') and

 len(a.商品コード) = len(b.商品コードパターン)

--------------------------------------------------------------

id:db_Magician

回答ありがとうございます。

想定どおりの動きになりました。

2009/02/12 16:53:30
id:chuken_kenkou No.2

chuken_kenkou回答回数722ベストアンサー獲得回数542009/02/12 16:44:17

ポイント35pt

こんなテーブル設計をすると、性能を出せませんよ?

行を一意に識別するキーは、何になるのでしょうか?

パターンに合致する行が複数あった場合など、どうしたいのでしょう?


create table A
(id          int primary key,
 KeyValue    varchar(30));
insert into A values(1,'12312345');
insert into A values(2,'A123');
insert into A values(3,'A12345678');
insert into A values(4,'1234A');

create table B
(id          int primary key,
 Ptn         varchar(30),
 Shohin      varchar(10));
insert into B values(1,'A@@@@@@@@','商品A');
insert into B values(2,'A@@@','商品B');
insert into B values(3,'123@@@@@','商品C');
insert into B values(4,'@@@@A','商品D');

select
  A.KeyValue,Shohin
 from A
  inner join B
   on A.KeyValue like replace(B.Ptn,'@','_')

http://q.hatena.ne.jp/だみー

id:db_Magician

回答ありがとうございます。

これは単発のイレギュラー処理です。

商品パターンがユニークで、商品コードも複数のパターンが重複することのないコードです。

2009/02/12 17:01:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません