ホームページ > データベース > mysql チュートリアル > COALESCE と ISNULL: NULL の処理にはどちらの SQL 関数を使用する必要がありますか?

COALESCE と ISNULL: NULL の処理にはどちらの SQL 関数を使用する必要がありますか?

Barbara Streisand
リリース: 2024-12-27 12:00:21
オリジナル
360 人が閲覧しました

COALESCE vs. ISNULL: Which SQL Function Should You Use for Handling NULLs?

SQL における COALESCE と ISNULL

SQL では、COALESCE と ISNULL は欠損値または NULL 値を処理するために使用される 2 つの関数です。これらは類似点を共有していますが、動作と実装には顕著な違いがあります。

COALESCE

COALESCE は、複数の引数を受け取り、最初の非 NULL 値を返す関数です。 。これは、文字列を連結したり、列が欠落している場合にデフォルト値を返したりする場合に便利です。例:

SELECT COALESCE(name, 'Unknown') FROM table
ログイン後にコピー

COALESCE はすべての引数を順番に評価するため、最初の引数が NULL の場合は、NULL 以外の値が見つかるまで次の引数に進みます。

ISNULL

ISNULL は 2 つの引数を受け取り、そうでない場合は最初の引数を返す関数ですそれ以外の場合は 2 番目の引数が NULL になります。これは、文字列の 1 つが NULL である場合に、文字列の連結が NULL を返すのを避けるためによく使用されます。例:

SELECT ISNULL(name, '') FROM table
ログイン後にコピー

ISNULL は最初の引数を 1 回だけ評価し、最初の引数が NULL でない場合は 2 番目の引数には進みません。

主な違い

COALESCE と ISNULL の主な違いは:

  • 引数の数: COALESCE は複数の引数を受け取りますが、ISNULL は 2 つだけを受け取ります。
  • 評価順序: COALESCE はすべてを評価します引数は順番に、ISNULL は最初の非 NULL で停止します。 argument.
  • データ型: ISNULL は最初の引数のデータ型を使用しますが、COALESCE は CASE 式ルールに従い、最も高い優先順位のデータ型を返します。
  • Nullability: ISNULL の結果は常に NOT NULL 可能とみなされますが、COALESCE の結果は NULL 可能ではない可能性があります。すべての引数が NULL の場合は NULL。

連結の推奨事項

SQL 連結で NULL 値を回避する場合は、ISNULL を使用することをお勧めします。 ISNULL は、引数の NULL 可能性に関係なく、結果が NULL にならないことを保証します。例:

SELECT ISNULL(column1, '') || ISNULL(column2, '') FROM table
ログイン後にコピー

この連結は、column1 と column2 の両方が NULL であっても、常に NULL 以外の文字列を返します。

以上がCOALESCE と ISNULL: NULL の処理にはどちらの SQL 関数を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート