如何在sql中使用if else语句来比较3个数据

时间:2017-01-30 14:38:05

标签: sql

我想问一下如何创建一个比较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; 

enter image description here

我想得到

的输出
111111

444444

1 个答案:

答案 0 :(得分:4)

coalesce应该做到这一点 - 它会返回它给出的第一个非null参数(或null,如果它们全部是null,当然)。

SELECT COALESCE(client_mobile, client_home, client_office) AS client_contact
FROM   contact