56

次のようにselectを条件付きにしたいselectステートメントがあります。

IFNULL(field_a, field_a, field_b)

フィールドaをチェックするようにします。aがnullの場合、選択はフィールドbになります。

それは可能ですか?

4

4 に答える 4

101

COALESCEを使用する:

SELECT COALESCE(field_a, field_b)

COALESCEは、指定された列のリストから最初のnull以外の値を返し、列を左から右に処理するANSI標準関数です。したがって、この例では、field_aがnullの場合、field_b値が表示されます。ただし、指定された列にnull以外の値がない場合、この関数はNULLを返します。

MySQL(4.1で使用)、SQL Server(v2000以降)、Oracle 9i+...でサポートされています。

于 2010-07-09T18:23:30.737 に答える
74

そしてその猫の皮を剥ぐ別の方法(ヌル比較だけでなく柔軟)...

select if(field_a is not null, field_a, field_b) from...
于 2014-04-30T18:26:06.513 に答える
44

はい、しかしそれはたった2つのパラメータです:

IFNULL(field_a,field_b)

nullでない場合field_aは、返されます。それ以外の場合field_bは返されます。

参照:IFNULL

于 2010-07-09T18:24:07.370 に答える
0

その他の例について

MySQL IFNULL()構文と例

構文

IFNULL関数の構文は次のとおりです。

IFNULL(expression_1,expression_2);

   SELECT 
     name, IFNULL(businessphone, homephone) phone
 FROM
     users;



       #The above query return this result from users table

   +------------+-----------+----------+-----------
   | id        | name           | phone          |
   +------------+-----------+----------+-----------
   | 5         | Tommy Hill     | (541) 754-3009 |
   | 6         | John Smith     | (541) 754-3110 | 
   | 10        | Mark Greenspan | (541) 754-3111 | 
   | 11        | Kelvin Row     | (541) 754-3111 |
   +------------+-----------+----------+-----------
于 2019-06-24T05:08:21.317 に答える