首页 > 解决方案 > 为什么我收到错误:CASE:语法错误

问题描述

为什么我收到错误:'CASE: syntax error'?试图在 sqlite3 中检索记录。

SELECT c.Region, c.City, c.PostalCode
CASE 
WHEN c.Region = e.Region THEN c.Region
        CASE
        WHEN c.City = e.City THEN c.City
            CASE
     WHEN c.PostalCode = e.PostalCode THEN c.PostalCode
     ELSE 'Null'
     END
            WHEN c.PostalCode = e.PostalCode THEN c.PostalCode
            ELSE 'Null'
            END
        ELSE 'Null'
        END
ELSE 'Null'
END
FROM customers c LEFT JOIN orders o ON c.CustomerID = o.CustomerID INNER JOIN employees e ON o.EmployeeID = e.EmployeeID;

标签: sqlsqlite

解决方案


您需要一个单独的 case 表达式,如下所示:

CASE 
WHEN c.Region = e.Region THEN c.Region
WHEN c.City = e.City THEN c.City
WHEN c.PostalCode = e.PostalCode THEN c.PostalCode
END

这假设所有列都THEN具有相同的数据类型。


推荐阅读