我想问一下如何创建一个比较3值的选择查询。比如我得到3个移动,家庭和办公室的数据。我想只显示一行,例如,如果我的手机是空值,它将显示在家,如果我的手机和家是空,它将显示办公室。我用if else代码尝试它,但只有当mobile为null时才会工作,它会显示在home。但是当移动设备和家庭无效时,我无法获得办公室的结果。
SELECT CASE WHEN client_mobile IS NOT NULL THEN client_mobile
WHEN client_mobile IS NULL THEN client_home
WHEN client_mobile IS NULL AND client_home IS NULL THEN client_office
ELSE 0
END
AS client_contact FROM contact;
我想得到
的输出111111
444444
答案 0 :(得分:4)
coalesce
应该做到这一点 - 它会返回它给出的第一个非null
参数(或null
,如果它们全部是null
,当然)。
SELECT COALESCE(client_mobile, client_home, client_office) AS client_contact
FROM contact