sql >> データベース >  >> RDS >> Mysql

mysqlのifnullとcolesceの違いは何ですか?

    2つの主な違いは、IFNULL 関数は2つの引数を取り、NULLでない場合は最初の引数を返します または、最初のコードがNULLの場合は2番目のコード 。

    COALESCE 関数は2つ以上のパラメーターを取り、最初の非NULLパラメーター、つまりNULLを返すことができます。 すべてのパラメータがnullの場合、例:

    SELECT IFNULL('some value', 'some other value');
    -> returns 'some value'
    
    SELECT IFNULL(NULL,'some other value');
    -> returns 'some other value'
    
    SELECT COALESCE(NULL, 'some other value');
    -> returns 'some other value' - equivalent of the IFNULL function
    
    SELECT COALESCE(NULL, 'some value', 'some other value');
    -> returns 'some value'
    
    SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
    -> returns 'first non-null value'
    

    更新: MSSQLは、より厳密な型とパラメータのチェックを行います。さらに、IFNULLはありません 関数ですが、代わりにISNULL 関数。引数のタイプを知る必要があります。したがって:

    SELECT ISNULL(NULL, NULL);
    -> results in an error
    
    SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
    -> returns NULL
    

    また、COALESCE MSSQLの関数では、少なくとも1つのパラメーターがnull以外である必要があります。したがって、次のようになります。

    SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
    -> results in an error
    
    SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
    -> returns 'first non-null value'
    


    1. このテキストファイルを読み取ってMySQLに挿入するにはどうすればよいですか?

    2. XMLサーバーXMLパフォーマンスの最適化

    3. オープンワールド2013から戻る

    4. OracleのSOUNDEX()関数