mysqlのifnullとcoalesceの違いは何ですか?
2023-07-30 01:57:57
質問
select ifnull(null,'replaces the null')
-->replaces the null
select coalesce(null,null,'replaces the null')
-->replaces the null
どちらの節でも、主な違いは引数の渡し方です。例えば
ifnull
は 2 つのパラメータで、coalesce は 2 つか 3 つを渡すことができます。
また、MSSqlではどのように違うのでしょうか?
どのように解決するのですか?
との主な違いは、以下の通りです。
IFNULL
関数は二つの引数を取り、最初の引数が
NULL
であれば2番目の引数を、1番目の引数が
NULL
.
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'
UPDATEです。
MSSQLはより厳密な型とパラメータのチェックを行います。さらに、それは
IFNULL
関数がなく、代わりに
ISNULL
関数で、引数の型を知る必要があります。 そのため
SELECT ISNULL(NULL, NULL);
-> results in an error
SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL
また
COALESCE
関数は、少なくとも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'
関連
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] varcharとnvarcharの違いは何ですか?
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】Oracle NVLとCoalesceの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
SQL集計、グループ化、ソート
-
MySQLで正規表現を使う 詳細
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
[解決済み】マルチパート識別子をバインドできませんでした。
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?