初投稿させて頂きます。
現在VBを人が書いたものを見て勉強中なのですが、SQL文の部分が分かりません。
こちらの掲示板でSQL文についての質問をしていいのか分からなかったのですが、他には見つからなかったためこちらで質問させて頂く事にしました。
どなたか宜しくお願い致します。
Dim strSql As String 'SQL文
'検索項目設定
strSql = ""
strSql = strSql & " SELECT"
'コード
strSql = strSql & " B.COD"
'名称
strSqlt = strSql & ", NVL(B.MEI, ' ') MEI"
'検索テーブル
strSql = strSql & " FROM"
strSql = strSql & " TK_TBL B"
以下Where文に続くのですが、
NVL関数の後にスペースがあり、MEIが来ているのは一体何故なんでしょうか?ここにMEIが入っていることに支障は無いのでしょうか?
それと同じく、TK_TBLの後にBが来ているのが何故か分かりません。
試しにMEIを消したものでもやってみたのですが、そちらでもちゃんと動いていました。
大変基本的な質問かと思いますが、宜しくお願い致します。
>NVL関数の後にスペースがあり、MEIが来ているのは一体何故なんでしょうか?
>ここにMEIが入っていることに支障は無いのでしょうか?
>それと同じく、TK_TBLの後にBが来ているのが何故か分かりません。
エイリアスです。Accessあたりなら、「 TK_TBL As B 」とか書くところです。
>こちらの掲示板でSQL文についての質問をしていいのか分からなかったのですが
純粋にSQLなら不許可です。
ま、今回はいちおうVBがからんでますので、「限りなくブラックに近いグレー」ということで・・・
VBがらみのSQLならVB初心者友の会のデータベースQ&A掲示板あたりが適当かと。
http://www2j.biglobe.ne.jp/~little-g/vbtomo.html
純粋にORACLE SQLの質問なら、くるくるおらくる会議室とか。
http://www7.big.or.jp/~pinball/discus/oracle/index.html
Sayさん回答有難うございますっ!
そうだったんですね。知りませんでした。
掲示板、会議室の紹介も有難うございます、大変助かりましたっ!!
本当に有難うございます。
[参考]エイリアス(←自分が説明できなかったので調べました(汗))
http://www.microsoft.com/japan/Terminology/query.asp?id=3910&q=%u30A8%u30A4%u30EA%u30A2%u30B9&kbid=&key=&ui=L&dev=
結果セットのフィールド名変更と、SQL 文の中でも有効だから
テーブル名を置き換えて条件部分で使ったりしてるんでしょう。
…オラクルでも AS 句は使えると思ってましたが…問題ないなら
AS を書いておいた方が分かり易いかも?。
>試しにMEIを消したものでもやってみたのですが、そちらでもちゃんと動いていました。
結果セットのフィールド名が違いますから、その後のプログラムで
フィールド名を指定して値を取り出す処理があればエラーとなりますし、
>strSql = strSql & " TK_TBL B"
の B 省略してたらエラーだったと思いますが…。
SQL はデータベースによって方言がありますから
SQL の質問にデータベースの種類は必須事項。
…NVL()関数はオラクルしかないかもしれないけど。
ツイート | ![]() |