私はこのような選択条件付きにするselect文を持っています
IFNULL(field_a,field_a,feild_b)
aがnullの場合、フィールドaをチェックし、選択はフィールドbになります
それは可能ですか?
[〜#〜] coalesce [〜#〜] を使用します。
SELECT COALESCE(field_a, field_b)
COALESCEは、指定された列のリストから最初の非NULL値を返し、列を左から右に処理するANSI標準関数です。したがって、例では、field_a
無効です、 field_b
値が表示されます。ただし、指定された列にnull以外の値がない場合、この関数はNULLを返します。
MySQL(4.1で使用しました)、SQL Server(v2000以降)、Oracle 9i +でサポートされています...
そしてその猫の皮を剥ぐ別の方法(null比較だけでなく柔軟)...
select if(field_a is not null, field_a, field_b) from...
はい、しかしそれはたった2つのパラメーターです:
IFNULL(field_a,field_b)
field_a
はnullではなく、返されます。さもないと field_b
が返されます。
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 |
+------------+-----------+----------+-----------