SQLの注意点 | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き

1: エクセルのシート名はFROM句の後で[ $]で囲う。
例) FROM [sheets1$]


2: エクセルでコネクションを行う際の留意点
例)  
        .Provider = "Microsoft.Ace.OLEDB.12.0"
        .Properties("Data Source") = ThisWorkbook.FullName ’←アドレスを入力
        .Properties("Extended Properties") = "Excel 12.0"   ’エクセルの場合は必ず指定する


3: 値内のワイルドカードは % を用いる。なお値はシングルコーテーションで囲う。
例)  LIKE '654%'


4: JOIN句
4-1:LEFT JOIN ⇒左側の値を元に照合する

(例)
SELECT * FROM 左 LEFT JOIN 右 ON 左.項目 = 右.項目 

 (データ)     ⇒   (抽出結果)
 左     右      左     右
---------------   ---------------
○1    ○1      ○1    ○1
○2            ○2
      ○3      xxx抽出されないxxx


4-2:RIGHT JOIN ⇒右側の値を元に照合する
(例)
SELECT * FROM 左 RIGHT JOIN 右 ON 左.項目 = 右.項目 

 (データ)     ⇒   (抽出結果)
 左     右      左     右
---------------   ---------------
○1    ○1      ○1    ○1
○2            xxx抽出されないxxx
      ○3             ○3 


4-3: INNER JOIN ⇒互いに一致する値のみ抽出する
(例)
SELECT * FROM 左 INNER JOIN 右 ON 左.項目 = 右.項目 
<次のSQLと抽出結果は同じ>
SELECT * FROM 左 , 右 ON 左.項目 = 右.項目 

 (データ)     ⇒   (抽出結果)
 左     右      左     右
---------------   ---------------
○1    ○1      ○1    ○1
○2            xxx抽出されないxxx
      ○3      xxx抽出されないxxx


※4-1を利用して、右側にないデータを抽出することができる
(例)
SELECT * 左 LEFT JOIN 右 ON 左.項目 = 右.項目 WHERE 右 IS NULL

 (データ)     ⇒   (抽出結果)
 左     右      左     右
---------------   ---------------
○1    ○1      xxx抽出されないxxx
○2            ○2
      ○3      xxx抽出されないxxx
~~~RIGHT JOINを用いる場合は逆の結果になる~~~
(例)
SELECT * 左 RIGHT JOIN 右 ON 左.項目 = 右.項目 WHERE 左 IS NULL

 (データ)     ⇒   (抽出結果)
 左     右      左     右
---------------   ---------------
○1    ○1      xxx抽出されないxxx
○2            xxx抽出されないxxx
      ○3      ○3