SQL 構文リファレンス : SELECT(INTO 付き)
 
このページをシェアする                  
SELECT(INTO 付き)
SELECT(INTO 付き)ステートメントを使用すると、指定したテーブルから列の値を選択して、変数に挿入したり、テーブルにデータを入れることができます。
構文
SELECT [ALL | DISTINCT] [top句] 選択リスト INTO 変数 | テーブル名 | テンポラリ テーブル名[, 変数]...
FROM テーブル参照[, テーブル参照]...[WHERE 検索条件]
[GROUP BY [, ]...[HAVING 検索条件]] [UNION [ALL] クエリ スペック] [ORDER BY order-by式[, order-by式]...]
 
クエリ スペック ::= (クエリ スペック)
| SELECT [ALL | DISTINCT] [top句] 選択リスト
FROM テーブル参照[, テーブル参照]...
[WHERE 検索条件]
[GROUP BY [, ]...
[HAVING 検索条件]]
 
変数 ::= ユーザー定義名
 
テーブル名 ::= テーブルのユーザー定義名
 
テンポラリ テーブル名 ::= テンポラリ テーブルのユーザー定義名
残りの構文定義については、SELECT を参照してください。
備考
変数は、ストアド プロシージャ、トリガー、およびユーザー定義関数内で生じる必要があります。
SELECT INTO を使用してテーブルにデータを入れられるのは、SELECT INTO ステートメントがユーザー定義関数またはトリガーの外部で使用される場合のみです。ユーザー定義関数またはトリガーの内部で、SELECT INTO を使用してテーブルを作成したりデータを入れることは許可されていません。
SELECT INTO をストアド プロシージャ内で使用することは許可されています。
SELECT INTO ステートメントによって作成し、データを入れることができるテーブルは 1 つだけです。単独の SELECT INTO ステートメントで複数のテーブルの作成とデータ投入を行うことはできません。
SELECT INTO で作成された新規テーブルは、ソース テーブルからの CASE および NOT NULL 制約によってのみ保守することができます。DEFAULT および COLLATE などのこれ以外の制約では保守できません。さらに、新しいテーブルにはインデックスは作成されません。
SELECT INTO を使用してテンポラリ テーブルにデータを入れる方法については、CREATE (テンポラリ) TABLE の例を参照してください。
次の例では、Person テーブルの、名前が Bill であるデータの first_name と last_name の値を変数 :x、:y に割り当てます。
SELECT first_name, last_name INTO :x, :y from person where first_name = 'Bill'
関連項目
CREATE FUNCTION
CREATE PROCEDURE
CREATE (テンポラリ) TABLE
CREATE TABLE