Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
NULL 値の解釈を制御します。
On、Off
On
このオプションは、主に Transact-SQL (Adaptive Server Enterprise) との互換性を保つために実装されています。ansinull オプションは、NULL 定数を持つ比較述部の結果に影響します。また、NULL 値でグループ化されたクエリに対して発行される警告にも影響します。
ansinull を On にすると、ANSI 3 値的論理が WHERE 句、HAVING 句、または On 状態におけるすべての述部比較で使用されます。= または != を使用した NULL との比較はすべて unknown と評価されます。
ansinull を Off に設定すると、SQL Anywhere は次の 4 つの条件に対して 2 値的論理を使用します。
expr = NULL
expr != NULL
expr = @var // @var はプロシージャー変数またはホスト変数
expr != @var
いずれの場合も、述部は true または false と評価され、unknown と評価されることはありません。このような比較では、NULL 値は各ドメインで特別値として処理され、2 つの NULL 値の等号 (=) 比較は true になります。式 expr は、相対的に単純な式で、カラム、変数、リテラルのみを参照し、サブクエリや関数を許可しない必要があります。
ansinull を On に設定した場合、NULL 値が少なくとも 1 つ含まれている式の集合関数の評価では、COUNT(*) を除き、警告 (SQLSTATE=01003) が生成されることがあります。 集合関数では、NULL 値は無視されます。を参照してください。
ansinull を Off に設定した場合、この警告は表示されません。
ansinull を Off に設定した場合、影響を受けるのは、SELECT 文、UPDATEDELETE 文、INSERT 文の述部である WHERE、HAVING、ON だけです。CASE 文、IF 文、または IF 式の比較のセマンティックは、影響を受けません。
Adaptive Server Enterprise 12.5 では、ansinull が Off に設定された状態における NULL パターン文字列を持つ LIKE 述部の動作が変更されています。SQL Anywhere では、LIKE 述部は従来どおり ansinull の設定に影響を受けません。