如何在sql中使用条件运算符

时间:2014-02-24 10:12:16

标签: mysql sql sql-server-2008 sql-server-2008-r2

我想要检索的是联系电话。我有一个名为BusinessDetails的关系,字段为NameDescriptionPhoneNumMobileNum。联系电话的情况如下:

  1. 我可以同时拥有MobileNum和PhoneNum。
  2. 我可以拥有其中任何一个
  3. 我不能同时拥有这两个
  4. 我正在尝试这段sql select语句,当有这两个号码时它是相当不错的。但是在23的情况下,有一个不必要的逗号与之关联。我的sql是

       SELECT Business.PhoneNum+','+Business.MobileNum AS ContactNumber 
         FROM dbo.BusinessDetails AS Business
    

    在第二和第三种情况下,有些人可以帮我删除逗号吗?

2 个答案:

答案 0 :(得分:2)

使用CONCAT_WS(),如下所示:

select CONCAT_WS(',', Business.PhoneNum, Business.MobileNum) 
from dbo.BusinessDetails as Business

答案 1 :(得分:1)

您可以使用case(适用于几乎所有DBMS的通用解决方案):

select case
         when PhoneNum is null then -- MobileNum only
           MobileNum
         when MobileNum is null then -- PhoneNum only
           PhoneNum
         when (PhoneNum is not null) and (MobileNum is not null) then -- Both
           MobileNum || ',' || PhoneNum
         else -- Neither MobileNum no PhoneNum  
           'No Phone'
       end as ContactNumber      
  from dbo.BusinessDetails as Business