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

解決済みの質問

SQL(Where句)

商品を登録するテーブル(商品テーブル)があって
構造が
商品主コード varchar(5)
商品補助コード varchar(2)
商品名 varchar(10)
です。

商品主コードと商品補助コードを一つにして「商品コード」として使用しています。(ex:12345-00)
検索の際、商品コードをインプットボックスに「12345-00」と入力してその商品名を取得したいのですが、上手くいきません。
どなたかお願いします!
現在のSQLは
Select 商品名
From 商品テーブル
Where 商品主コード || '-' || 商品補助コード Like '%入力された商品コード%'
です。

投稿日時 - 2005-02-01 13:59:18

QNo.1196460

すぐに回答ほしいです

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

どのように上手くいかないのか不明ですが、条件は

Where 商品主コード || '-' || 商品補助コード = '入力された商品コード'

もしくは

Where 商品主コード || '-' || 商品補助コード Like '入力された商品コード%'

ではないのでしょうか?
インプットボックスが商品主コードと商品補助コードに分かれていない場合、前方一致か完全一致でないと入力する方も難しいと思います。
(つまり、「12345-00」の商品コードに対して、「45-0」と入力して「12345-00」を検索することはないと思いますが。。。)

投稿日時 - 2005-02-01 15:01:43

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

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

回答(3)

ANo.2

こんにちは。

SQLは問題なさそうですが・・・?
当然
LIKE '%' || 入力された商品コード || '%'
になってますよね?

変数が入った状態(Executeする直前)の中身は見れますか?
(デバッグモードなどで・・・)
(^^ゞ

投稿日時 - 2005-02-01 14:57:41

ANo.1

Select 商品名
From 商品テーブル
Where 商品主コード + '-' + 商品補助コード Like '%入力された商品コード%'


上記が無理ならインプットボックスの「12345-00」を「12345」「00」と分割したら駄目なんですか?

Select 商品名
From 商品テーブル
Where 商品主コード Like '%12345%'
  AND 商品補助コード Like '%00%'

投稿日時 - 2005-02-01 14:16:36

お礼

ありがとうございます!

ですが、「+」だとpostgresはダメみたいです・・・。
ご指摘の通り、分割したいのですが、
商品主コードが「12-34」だったり5文字じゃなかったりするので、分割は難しいと思いまして。

もうちょっと頑張ってみます。

投稿日時 - 2005-02-01 14:30:32

あなたにオススメの質問