ISNULL SQL 関数の In Case ステートメント

ISNULL SQL 関数の In Case ステートメント

このブログでは、複数の論理操作を処理するために使用できるCASEステートメントについて説明します。また、 NULL値を持つ式が存在する場合に置換値を返すことができるISNULL SQL 関数についても説明します。

CASEステートメントとISNULL関数は、多くの論理演算を必要とするコードを操作したり、固定値または指定された値を式にすばやく置き換えたりする場合に非常に役立ちます

SQLの CASE ステートメントは、IF ELSEステートメントの使用に似ています。ただし、これはおそらくDAXで使用するSWITCHステートメントに似ています。一方、ISNULL関数は、 NULL値を使用したい特定の値に置き換えます。

目次

SQL での CASE ステートメントの使用

ProductName列とSales Amount列があると仮定します。

ISNULL SQL 関数の In Case ステートメント

次に、 descriptionという名前の追加の列を作成します。

ISNULL SQL 関数の In Case ステートメント

また、売上金額が5以下の場合は「安い」を表示し、 6から100までの場合は「あまり安くない」を表示する論理ステートメントも追加したいと考えています。値が 100 を超える場合は、「高価」と表示されます。

ISNULL SQL 関数の In Case ステートメント

この例では、SELECTステートメントを使用して、表示する列を選択しました。その後に、前述した論理演算を含むCASEステートメントがあります。

CASEステートメントを使用する場合、WHENステートメントとTHENステートメントは、選択した列に実装する論理操作を示すために常に使用されます。ELSEステートメントは設定された論理演算が満たされなかった場合にデフォルト値を設定するためのものです。

CASEステートメントの最後には、 END ASとその隣に列名があります。これにより、 CASEステートメントに追加した論理演算に基づいた値を含む、Descriptionという名前の新しい列が作成されます。

ISNULL SQL 関数の使用

ISNULL関数は、選択した列にNULL値があるかどうかを確認し、指定した値に置き換えます。次に、 NULL値を持つ次の列があることを視覚化してみましょう。

ISNULL SQL 関数の In Case ステートメント

上の例では、すべてのNULL値が「 Unknown 」値に置き換えられます。次のコード行は、この例の作成に使用されます。

ISNULL SQL 関数の In Case ステートメント

ISNULL SQL 関数を使用する場合は、まずSELECTステートメントを使用してMiddleName列を選択する必要があります。

その後、ISNULL関数を使用して、かっこ内に指定されたMiddleName列を確認し、その中のNULL値を「 Unknown」値に置き換える必要があります。

AS関数は、新しい列を作成するためのもので、この場合は MiddleName_Newです

ISNULL関数は、特定の値がNULLに等しくない場合にのみNULL 値を置き換えることに注意してください。その後、 ISNULL関数で指定した列から同じ値が返されます。

次に、 SSMSのCASEステートメントとISNULL関数を使用して、実際にどのように機能するかを確認します。 

SSMS の CASE ステートメント

まず、PERSON.PERSONからFirstName列を選択します。この例では、列を選択する必要がないことに注意してください。これはあくまで参考用です。

ISNULL SQL 関数の In Case ステートメント

この列を表示した後、 CASEステートメントを使用して、名がKimであるかどうかに関係なく値を表示する列を作成しましょう。これを行うには、以下の例に従ってください。

ISNULL SQL 関数の In Case ステートメント

上記のサンプル コードでは、CASEステートメントを使用して、 FirstName が「 Kim 」に等しい場合は「 Yes 」が表示され、そうでない場合は代わりに「No」が表示されるという条件を追加しました。

この例では、 END AS関数を使用して「 IsKim」という名前の新しい列も作成しました。結果については、以下の例を参照してください。

ISNULL SQL 関数の In Case ステートメント

次に、 CASEステートメントを使用して、 Sales.SalesOrderHeaderテーブルのTaxAmt列にいくつかの条件を適用する別の例を見てみましょう。

まず、次のコード行を使用してSales.SalesOrderHeaderから上位 100 列を取得し、 TaxAmt列を探しましょう。

ISNULL SQL 関数の In Case ステートメント

その後、以下の例を使用して、CASEステートメントを使用してTaxAmt列に条件を適用してみましょう。

ISNULL SQL 関数の In Case ステートメント

前の例と同様に、条件を適用する列を選択することから始めました。この場合は、TaxAmt列です。

次にCASEステートメントに、TaxAmt が500以下の場合に値「Perfect」を表示するという条件を追加しました。TaxAmtが2000以下の場合、値「Healthy」が表示されます。

さらに、条件が満たされていない場合は、「Not Good の値が表示されます。ステートメントの最後に、TaxClassという名前の新しい列を作成しました。

ISNULL SQL 関数の In Case ステートメント

これがSQLCASEステートメントを使用する方法です。条件はいくつでも設定できることに注意してください。WHENステートメントとTHENステートメント、およびEND AS関数を必ず使用して、結果が表示される新しい列を生成してください。

SSMS の ISNULL SQL 関数

この例では、前の例と同じテーブルを使用します。次に、この関数を使用してCurrencyRateID列のNULL値を置き換える方法を示します。 

ISNULL SQL 関数の In Case ステートメント

上の例からテーブルを選択すると、CurrencyRateID列の下にNULL値が表示されます。ここで、これらのNULL値を「1 」に置き換えたいと思います。これを行うには、以下の例を参照してください。

ISNULL SQL 関数の In Case ステートメント

特定の列のNULL値を変更するには、まず NULL 値を持つ列を選択する必要があります。この場合、それはCurrencyRateIDです。次に、 ISNULL関数を使用して、 ISNULL関数によってチェックされる列 ( CurrencyRateID )を選択します。

使用する置換値も宣言する必要があります。この例では「1」を使用しました。最後に、 AS関数を追加して、 NewRateという名前の新しい列を作成します。

その結果、NewRate列の下のすべてのNULL値は「 1」に置き換えられ、 NULL値を持たない値はそのまま残りました。さらに、列を使用してNULL値を変更することもできます。これは、以下の例に従って行うことができます。

ISNULL SQL 関数の In Case ステートメント

前の例と同じ構文を使用して、ISNULL関数の前に参照としてCurrencyRateID の隣にSalesOrderIDを追加しました。次に、置換値をSalesOrderIDに変更しました。このステートメントは、 CurrencyRateIDの下のNULL値を単純にチェックし、 SalesOrderID列の値に置き換えます。

結論

要約すると、SQLの適切な構文とともにCASEステートメントとISNULL関数を使用する方法を学習しました。また、 CASEステートメントには論理条件を必要なだけ含めることができることも学びました。CASEステートメントはSWITCH ステートメントまたはIF ELSEステートメントと似ていることに注意してください。

ISNULL関数に加えて、この関数を利用してNULL値を置き換えるさまざまな方法 (固定値または列を使用する方法) があることを学習しました。

ではごきげんよう、

ハーフィズ






Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて