- ベストアンサー
SQL(Where句)
商品を登録するテーブル(商品テーブル)があって 構造が 商品主コード varchar(5) 商品補助コード varchar(2) 商品名 varchar(10) です。 商品主コードと商品補助コードを一つにして「商品コード」として使用しています。(ex:12345-00) 検索の際、商品コードをインプットボックスに「12345-00」と入力してその商品名を取得したいのですが、上手くいきません。 どなたかお願いします! 現在のSQLは Select 商品名 From 商品テーブル Where 商品主コード || '-' || 商品補助コード Like '%入力された商品コード%' です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どのように上手くいかないのか不明ですが、条件は Where 商品主コード || '-' || 商品補助コード = '入力された商品コード' もしくは Where 商品主コード || '-' || 商品補助コード Like '入力された商品コード%' ではないのでしょうか? インプットボックスが商品主コードと商品補助コードに分かれていない場合、前方一致か完全一致でないと入力する方も難しいと思います。 (つまり、「12345-00」の商品コードに対して、「45-0」と入力して「12345-00」を検索することはないと思いますが。。。)
その他の回答 (2)
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 SQLは問題なさそうですが・・・? 当然 LIKE '%' || 入力された商品コード || '%' になってますよね? 変数が入った状態(Executeする直前)の中身は見れますか? (デバッグモードなどで・・・) (^^ゞ
- jurarumin
- ベストアンサー率34% (190/544)
Select 商品名 From 商品テーブル Where 商品主コード + '-' + 商品補助コード Like '%入力された商品コード%' 上記が無理ならインプットボックスの「12345-00」を「12345」「00」と分割したら駄目なんですか? Select 商品名 From 商品テーブル Where 商品主コード Like '%12345%' AND 商品補助コード Like '%00%'
お礼
ありがとうございます! ですが、「+」だとpostgresはダメみたいです・・・。 ご指摘の通り、分割したいのですが、 商品主コードが「12-34」だったり5文字じゃなかったりするので、分割は難しいと思いまして。 もうちょっと頑張ってみます。