1. ホーム
  2. mysql

[解決済み] MySql クエリ Select の NULL を空文字列に置換する。

2023-07-21 18:39:15

質問

select の NULL 値を空の文字列に置き換えるにはどうしたらよいでしょうか。 NULL値を出力するのは、あまりプロフェッショナルな感じではありません。

これは非常に珍しいことで、私の構文に基づいて、私はそれが動作することを期待します。 なぜそうしないのかの説明を期待しています。

select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;

元のテーブルがどのようなものか、私が欲しいものは何か、そして実際に何が印刷されるかの例です。

original     wanted      what actually prints
--------     ------      ---------------------
value1       value1      
NULL                     NULL
value2       value2      
NULL                     NULL

見てわかるように、これは私が欲しいものの反対をします。したがって、私はIS NULLをIS NOT NULLに反転させようとしましたが、もちろんそれは修正されませんでした。また、when caseの位置を入れ替えてみましたが、これもうまくいきませんでした。

以下の3つの解決策はすべてタスクを実行するようです。

select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test

どのように解決するのですか?

これらの組み込み関数のいくつかは動作するはずです。

COALESCE (値,...)

リスト内の最初の非NULL値を返すか、非NULL値がない場合はNULLを返します。

IS NULL

値がNULLかどうかをテストします。

IFNULL (expr1,expr2)

expr1がNULLでない場合、IFNULL()はexpr1を返し、そうでない場合はexpr2を返します。