SQL 解説書

割り当てと比較

SQL の基本的な演算は、割り当てと比較です。 割り当て操作は、INSERT、 UPDATE、FETCH、SELECT INTO、VALUES INTO および SET 変換変数ステートメントの実行時に行われます。

関数の引き数も、関数の呼び出し時に割り当てられます。 比較演算は、MAX、MIN、DISTINCT、GROUP BY、 ORDER BY のような述部およびその他の言語要素を含むステートメントの実行時に行われます。

両方の演算に適用される基本的な規則は、 関係するオペランドのデータ・タイプは互換でなければならないということです。 この互換性規則は集合演算にも適用されます (結果のデータ・タイプに関する規則を参照)。 互換性について一覧表にまとめると以下のようになります。

表 7. 割り当てと比較におけるデータ・タイプの互換性
オペランド 2 進整数 10 進数 浮動小数点数 文字ストリング 漢字ストリング 日付 時刻 タイム・スタンプ 2 進ストリング UDT
2 進整数 Yes Yes Yes No No No No No No 2
10 進数 Yes Yes Yes No No No No No No 2
浮動小数点数 Yes Yes Yes No No No No No No 2
文字ストリング No No No Yes No 1 1 1 No 3 2
漢字ストリング No No No No Yes No No No No 2
日付 No No No 1 No Yes No No No 2
時刻 No No No 1 No No Yes No No 2
タイム・スタンプ No No No 1 No No No Yes No 2
2 進ストリング No No No No 3 No No No No Yes 2
UDT 2 2 2 2 2 2 2 2 2 Yes
注:

1
日付 / 時刻値と文字ストリングの互換性は、 割り当てと比較に限定されています。
  • 日付 / 時刻値は、日付 / 時刻の割り当ての項で説明するように、 文字ストリング列と文字ストリング変数に割り当てることができます。
  • 日付の有効なストリング表記は、日付列に割り当てるか、 または日付と比較できます。
  • 時刻の有効なストリング表記は、時刻列に割り当てるか、 または時刻と比較できます。
  • タイム・スタンプの有効なストリング表記は、 タイム・スタンプ列に割り当てるか、またはタイム・スタンプと比較できます。

2
ユーザー定義特殊タイプ (UDDT) の値は、 同じ UDDT で定義された値とのみ比較できます。 一般に、特殊タイプの値とそのソース・データ・タイプとの間では割り当てがサポートされます。 ユーザー定義構造タイプは比較することができません。また、 同じ構造タイプまたはそのスーパータイプのいずれかのオペランドにのみ、 割り当てることができます。 さらに詳しい情報については、ユーザー定義タイプの割り当てを参照してください。

3
これは、 FOR BIT DATA 属性で定義された文字ストリングも 2 進ストリングと互換でないということです。

4
DATALINK オペランドはほかの DATALINK オペランドにしか割り当てることができません。 列が NO LINK CONTROL と定義されている場合、 またはファイルは存在しているがまだファイル・リンク制御されていない場合、 DATALINK 値はその列にしか割り当てることができません。

5
参照タイプの割り当ておよび比較については、 参照タイプの割り当ておよび 参照タイプの比較を参照してください。

割り当て操作の基本的な規則は、 ヌル値を入れることができない列や、 関連する標識変数がないホスト変数に、 ヌル値を割り当てることができないという規則です。

(標識変数については、ホスト変数の参照を参照。)


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]