Visual FoxPro で null 値を使用する

この記事では、Visual FoxPro のコマンドと関数で null データ値を使用する方法について説明します。

元の製品バージョン: Visual FoxPro
元の KB 番号: 130307

概要

Visual FoxPro バージョン 3.0 では、null データ値がサポートされています。 バージョン 3.0 より前のバージョンの FoxPro では、null データ値が直接サポートされていませんでした。 この記事では、Visual FoxPro が Visual FoxPro のコマンドまたは関数に渡されるときに null 値 (として .NULL.表される) を処理するための一般的な規則について説明します。

詳細

値が見つからない、無関係、または不明な場合は、null 値 (.NULL.) 値を使用します。 以前のバージョンの FoxPro では、不明または欠落していた値はスペースまたはゼロで表されていました。これは誤って解釈されていた可能性があります。 Visual FoxPro を使用すると、null 値をフィールドに格納できるようになりました。

Visual FoxPro の null 値 (.NULL.) は、空、空白、またはゼロの値と同じではないことに注意してください。 Null は値が存在しないことを表します。そのため、null は、別の値である null または null 以外の値と等しくない、より大きい、またはより小さいことはありません。 Null 値に対する Visual FoxPro のサポートは ANSI 標準に準拠しており、値と式が使用される製品の任意の領域に影響します。

null 値の一般的な規則

Visual FoxPro コマンドまたは関数に渡される null 値の一般的な規則を次に示します。

  • null を渡すと、コマンドによってエラーが生成されます。

  • null 値を受け取る関数は、結果としてを返します .NULL.

  • 数値を予期する関数は、null を指定した場合にエラーを生成します。

  • ISBLANK()ISDIGIT()ISLOWER()ISUPPER()ISALPHA()EMPTY() は、null 値を渡すと、それぞれ false (.F.) を返します。

  • ISNULL() は、null 値が渡されたときに true (.T.) を返します。

  • SQL および SQL コマンド INSERT は、IS NULL 句と SELECT IS NOT NULL 句を使用して NULL 値を処理します。

  • 、 などの MAX()MIN()SQL 集計関数は、SUM()集計内のすべての null 値を無視します。

  • 指定されたすべての値が null 値の場合、Visual FoxPro 集計関数は伝達 .NULL. されます。それ以外の場合、null 値はすべて無視されます。

この記事の残りの部分では、これらの一般的な規則の詳細と例について説明します。

null を渡すと、コマンドによってエラーが生成されます

Visual FoxPro コマンドは、アクションを生成するステートメントです。 コマンドの例としては、 USEBROWSE、、 などがあります DELETE。 たとえば、 コマンドは USE 次のコードのエラーを返します。

STORE .NULL. TO nWorkArea
USE mytable IN (nWorkArea)

コマンドの USE IN 句は、数値またはアルファ値を想定しています。渡されると .NULL.エラー Table Number が Invalid であることが 生成されます。

関数を NVL() 使用して、null 値がサポートされていないか、関連しない計算または操作から null 値を削除できます。

STORE .NULL. TO nWorkArea
USE mytable IN NVL(nWorkArea,0)

これにより、最初に使用可能な作業領域で mytable が開きます。 関数の詳細については、ヘルプ ファイルまたは Visual FoxPro のドキュメントを NVL() 参照してください。

null 値を受け取る関数は を返します。Null。 その結果

Visual FoxPro 関数は、特定のタスクを実行し、0 個以上の引数を受け取るルーチンです。 関数の例としては、 ISBLANK()、、 UPPER()、 などがあります SUBSTR()。 ほとんどの Visual FoxPro 関数では、エラーを生成せずに null 値を引数として渡すことができますが .NULL. 、 は 関数から返されます。 つまり、null 値を関数に渡すと、結果は常に null になります。 これは、数式で null 値を扱う方法でもあります。 たとえば、500 に追加された null 値は null と等しく、null 値に 0 を掛けた場合は null (ゼロではない) と等しくなります。

次のコード例は、 を返します .NULL.

cLastName = "Johnson"
nBegin = 5
nExtract = .NULL.
?SUBSTR(cLastName,nBegin,nExtract)

この規則の例外はISBLANK()ISUPPER()ISLOWER()ISALPHA()ISDIGIT()、および EMPTY() 関数です。それぞれの関数は値を.F.返します。 関数は ISNULL() 値を .T. 返します。

INSERT SQL と SELECT SQL process Null Values by using new clauses

2 つの新しい句 (IS NULL と IS NOT NULL) は、 および SELECT SQL コマンドで INSERT null を処理します。 たとえば、cLastName が null ではないテーブル内のすべてのレコードを検索するには、次のコマンドを使用します。

SELECT cLastName FROM mytable WHERE cLastName IS NOT NULL

NULL 値を見つけるには、IS NULL 句を使用します。

SQL 集計関数 Null 値を無視する

集計関数は、値のグループ (集計) に対して加算、最小値、最大値、平均などの数値演算を実行する関数です。 集計関数の例としては、 MAX()、、 MIN()、 などがあります SUM()

たとえば、SQL コマンドでは SELECT 、集計関数を使用してテーブルから数値を取得できます。 たとえば、次 SELECT のコマンドは、 という名前 nYTDSalesのフィールドから最大値を返します。

SELECT MAX(nYTDSales) from mytable

値を含む .NULL. フィールドに対して実行されるすべての SQL 集計関数は、値を .NULL. 無視し、null 値が存在しないかのように扱う結果を返します (集計の一部ではありません)。

上記の値と関数の .NULL. 詳細については、Visual FoxPro ヘルプ ファイルのトピックを検索してください。