Googleスプレッドシート独自の関数であるQUERY関数におけるSELECT句の使用についてです。
- SELECT句を省略すれば全ての列が抽出されます。
- WHERE句などを使用する際にSELECT句を併用する必要はありません。
手順
F2セルにQUERY関数を用いた式を入力し、B2:D7の範囲にある表をそのまま抽出しています。
F2セル
=QUERY(B2:D7,"SELECT *",1)
第2引数として「"SELECT *"」を指定しています。QUERY関数の第2引数で使用できる「クエリ言語」のモデルであるSQLではおなじみの表現で、すべての列を抽出することを意味しています。もちろんクエリ言語においても同じ意味(第1引数で指定した範囲のすべての行を抽出する)となります。
しかし、そもそもQUERY関数の第2引数自体が省略可能で、その場合すべての列、すべての行を抽出します。
「"SELECT *"」を使用するまでもありません。
F2セル
=QUERY(B2:D7,,1)
よってSELECT句を使用するのは、抽出しようとする列を制限する場合だけで十分です。
この例は第1引数で指定した範囲(B~D列)のうち、B列とC列だけを抽出しています。
F2セル
=QUERY(B2:D7,"SELECT B,C",1)
WHERE句を使って抽出する行の絞り込みができますが、このときもSELECT句は必須ではありません。
F2セル
=QUERY(B2:D7,"WHERE B>=2",1)
SQLの場合はSELECT文がないと抽出そのものができず、WHEREなどはそのオプションという扱いです。
しかしQUERY関数の場合はQUERY関数だけで抽出ができ、クエリ言語の句はすべてオプションです。一部の列だけ抽出したければSELECTを使い、一部の行を抽出したければWHEREなどを使えばよいのです。