代码之家  ›  专栏  ›  技术社区  ›  Philo

SQL复合查询if else或Case语句

  •  0
  • Philo  · 技术社区  · 9 年前

    我有一个带有Customer\u ID、Customer\u Name、Address1、Address2、Mail\u Address1、Mail\u Address2等的表。

    在某些情况下,Mail_Address1=“相同”或“。。。。这基本上意味着我需要提取Address1+Address2,否则忽略并获取Mail\u Address1+Mail\u Address2。

    我的伪SQL查询如下所示:-

    // The query that would give me all the records with the same address as Address1 for Mailing Address //
        SELECT Customer_ID, Customer_Name, Address1 + ', ' + Address2 as Address, .... 
        FROM Customers
        Where Customer_ID != 0 AND (Mail_Address1 ='Same' or Mail_Address1 ='')
    

        SELECT Customer_ID, Customer_Name, Mail_Address1 + ', ' + Mail_Address2 as Address, .... 
        FROM Customers
        Where Customer_ID != 0 AND Mail_Address1 !='Same' AND Mail_Address1 !=''
    

    1 回复  |  直到 9 年前
        1
  •  0
  •   duber    9 年前

    你考虑过 CASE 陈述

    SELECT 
    CASE 
        WHEN Customer_ID != 0 AND (Mail_Address1 ='Same' OR Mail_Address1 = '')
        THEN Address1 + ', ' + Address2
        ELSE Mail_Address1 + ', ' + Mail_Address2
    END AS address
    FROM Customers