mysql - SQL 复合查询 if-else 或 Case 语句

标签 mysql

我有一个表,其中包含 Customer_ID、Customer_Name、Address1、Address2、Mail_Address1、Mail_Address2 等。

在某些情况下,Mail_Address1 = 'Same' 或 ''.... 这基本上意味着我需要提取 Address1 + Address2,否则忽略并采用 Mail_Address1 + Mail_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 !=''

如何组合这两个查询,以便我可以有一个查询,该查询将根据条件选择正确的地址。 (相同或空字符串)。

最佳答案

您考虑过 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

关于mysql - SQL 复合查询 if-else 或 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45745444/

相关文章:

mysql - FlywaySqlException : Unable to insert row for version `11` in Schema History table `schema_version` : Field `version_rank` doesn't have a default value 错误

mysql - prestashop 数据库巨大容量表 ps_search_index

mysql - 如何在mysql上的两个表之间进行左连接?

mysql - 如何在 phalcon 中优化 mysql 查询

php - 如果我在表名后使用任何条件,表的最后一行不显示

MySQL轮询,结果错误

php - 选择并计算连接表

php - 将参数绑定(bind)到 PDO 语句时遇到问题

mysql - 从Delphi异步访问MySQL数据库

php - 无法从表中返回数据 - Codeigniter