Symfoware Server SQLビギナーズガイド - FUJITSU - |
目次 索引 |
第2章 データを検索する方法 | > 2.1 列の値をそのまま取り出す |
“列の値をそのまま取り出す”で最初に示した例では、データを取り出す列は“在庫数量”だけでした。データを取り出したい列が、“在庫数量”と“倉庫番号”の2つになったとします。それには単一行SELECT文を2回実行すればよいことはすぐに分かります。しかし、これではデータを取り出したい列の数が多くなると効率が悪くなります。単一行SELECT文では、一度に複数の列の値を取り出すことができます。
複数の列のデータを取り出すには、選択リストに必要な数の列名をコンマ(,)で区切って指定します。取り出したデータを格納するホスト変数も、同じ数だけ指定します。取り出した列のデータは、左から数えて同じ順番のホスト変数に格納されます。
単一行SELECT文に複数の列を指定した例を以下に示します。
例1
在庫表から、製品番号が“215”の製品の在庫数量と倉庫番号を求めます。求めた在庫数量はホスト変数“STOCKQTY”に、倉庫番号はホスト変数“WHCODE”に格納します。
表に含まれるすべての列を定義された順に指定する場合は、列名の代わりにアスタリスク(*)を指定することができます。アスタリスクを指定した例を以下に示します。
例2
“*”の指定の例です。在庫表からすべての列のデータを取り出します。
SELECT * INTO :ITMNO, :PRODUCT, :STOCKQTY, :WHCODE FROM 在庫管理.在庫表 WHERE 製品番号 = 215
例2は、データを取り出す列に、製品番号、製品名、在庫数量、および倉庫番号の4つの列を指定したのと同じです。したがって、取り出した列のデータを格納するホスト変数は4つ指定することが必要です。
なお、列名の代わりにアスタリスクを指定すると、表の設計変更により列が追加されたり、列の定義順序が変更されたときに、アプリケーションの修正が必要になります。アプリケーションにこのような影響を与えないためには、すべての列をコンマ(,)で区切って指定するようにしてください。
目次 索引 |