値のリストから最初のNULL以外の値を見つけるために使用されるMySQL関数はどれですか?
COALESCE()関数とは
MySQLでは、COALESCE()関数を使用することで、複数の値の中から最初のNULL以外の値を取得できます。この関数は引数を左から右へと順番に評価し、NULL以外の値が見つかった時点でその値を返します。すべての引数がNULLであった場合は、NULLが返されます。
COALESCE()関数は、1つ以上の引数を受け取ることができます。基本的な構文は以下の通りです。
COALESCE(value1, value2, …, valueN)
使用例
以下の例では、3つのNULL値の後に「Ram」という文字列が続いているため、最初のNULL以外の値である「Ram」が結果として返されます。
mysql> Select COALESCE(NULL, NULL, NULL, 'Ram', 'Aarav', NULL); +--------------------------------------------------+ | COALESCE(NULL, NULL, NULL, 'Ram', 'Aarav', NULL) | +--------------------------------------------------+ | Ram | +--------------------------------------------------+ 1 row in set (0.00 sec)
実務での活用シーン
COALESCE()関数は、テーブルのカラムにNULLが含まれている場合に、代わりのデフォルト値を表示したいときなどに特に便利です。たとえば、ユーザー情報を取得する際に電話番号が未登録の場合、代替の文字列を表示できます。
SELECT name, COALESCE(phone_number, '未登録') AS phone FROM users;
このようにCOALESCE()を使うことで、NULLによる表示の乱れやアプリケーション側のエラー処理を減らし、より読みやすく扱いやすいデータを取得することができます。
-
MySQLのVARCHAR型カラムから最大値を正しく取得する方法
VARCHAR型(文字列型)のカラムに対してそのまま MAX() 関数を使用すると、値は文字列として比較されるため、「8」「901」「10001」のような数値的な大小関係が正しく評価されません。そこで、CAST() を使って値を数値型に変換してから MAX() を適用することで、正確な最大値を取得できます。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable2030 -> ( -> Value varchar(20) -> ); Query OK, 0 row
-
C++で関数の値がAに最も近い数値をリストから検索する方法
関数 F(n) = P − (0.006 × n) があるとします。ここで P はあらかじめ与えられた定数です。さらに、整数のリストと数値 A が与えられたとき、リストの中から「F(n) の値が A に最も近くなる」要素を見つけるのがこの問題の目的です。例として、P = 12、A = 5、リストが {1000, 2000} の場合を考えてみましょう。まず、F(1000) = 12 − (0.006 × 1000) = 6、次に F(2000) = 12 − (0.006 × 2000) = 0 と計算できます。A = 5 に最も近い値は 6 であるため、答えは 1000 となります。解法の考え