質問
この
のように条件付きを選択したい選択ステートメントを持っていますIFNULL(field_a,field_a,feild_b)
.
A aがNULLの場合、フィールドaがチェックされると、選択はフィールドB
になります。は可能な限り?
解決
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 + ...
他のヒント
その猫を肌に皮膚にするもう1つの方法(ヌル比較だけでなく柔軟)...
select if(field_a is not null, field_a, field_b) from...
. はい、しかしそれは2つのパラメータです:
IFNULL(field_a,field_b)
.
field_a
がnullでない場合は返されます。それ以外の場合、field_b
が返されます。
リファレンス: ifnull
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 |
+------------+-----------+----------+-----------
. 所属していません StackOverflow