• ベストアンサー

SQL文で・・・

こんにんちは。ご多忙だと思いますが回答宜しくお願い致します。 今、VBのソースを見ているのですが(VB初心者)、SQL文を作成している 部分があるのですが、ちょっとわかりません。 w_st_sql = "SELECT * FROM AAAA WHERE (K1 || K2 || K3) = " & "'" & p_st_key & "'" 上記のソースは(自分なりに解析したんですが)、テーブルAAAAのレコードで 変数p_st_keyの値がフィールドK1, K2, K3のどれかに当てはまるすべてのフィールドを取得する考えでよろしいのでしょうか? わからない部分は"(K1 || K2 || K3)"です。 すごく簡単な事かもしれませんが宜しくお願い致します。

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

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

割り込みになってしまってすみません。 > 上記のプログラムでK1, K2, K3が変数として宣言も処理もなかったので(ネット上のサンプルプログラム)もしかしたらこの3つはフィールドかと勝手に(?)おもってしまいました。 いや、基本的にK1, K2, K3がフィールドであるという認識は問題ないと思います(ストアドプロシージャ内でしたら変数であるかもしれませんが)。 要するに、「K1, K2, K3、各フィールドの文字列データを連結した結果が、VB上の変数p_st_keyに格納されている文字列に合致している場合」という条件になります。

653
質問者

お礼

>いや、基本的にK1, K2, K3がフィールドであるという認識は問題ないと思います>(ストアドプロシージャ内でしたら変数であるかもしれませんが)。 確かにそうですよね。フィールドだとおもうんですよね。たしかにもしかしたら変数かもしれません。 でもK1, K2, K3が変数であろうとフィールドであろうと "||"の意味が連結ならば問題なさそうです。 ありがとうございました。

その他の回答 (2)

  • kj_
  • ベストアンサー率39% (9/23)
回答No.3

>w_st_sql = "SELECT * FROM AAAA WHERE (K1 || K2 || K3) = " & "'" & p_st_key & "'" えーっと 結局は単純なSQL文ってことですね。 まず テーブルの AAAA を DESC して項目を調べてください SQLPLUSか何かで sql>desc AAAA とやれば テーブル構成が見れます。 そうすると 多分 K1 K2 K3 ってのが項目名で取れるはずです。 それから SQL で言う || は、文字の結合を意味します。 ですので K1 || K2 || K3 っていうのは、3個項目の内容を結合した結果。 VB側で編集している、p_st_keyの内容と合っているレコードを抽出しろってことですね。 んじゃ 頑張ってくださーい

653
質問者

お礼

ありがとうございました。 descで確認したいのはやまやまなんですが、なんせサンプルプログラムで テーブル構成から変数宣言までなんにも書いてなかったんですよ(泣) ちょっと見たサンプルがまずかったですね(笑) ありがとうございました。

  • stork
  • ベストアンサー率34% (97/285)
回答No.1

||を使っているのはあんまり見たことがないですね。 K1 || K2 || K3の意味はどうやら、 K1,K2,K3を単純に文字連結したもののようです。

653
質問者

お礼

そうですよね。私なりにも調べてみたのですが、storkさんがおっしゃったように 文字列の連結とかいてありました。 上記のプログラムでK1, K2, K3が変数として宣言も処理もなかったので(ネット上のサンプルプログラム)もしかしたらこの3つはフィールドかと勝手に(?)おもってしまいました。