sql - 为什么我收到错误: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;
解决方案
您需要一个单独的 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
具有相同的数据类型。
推荐阅读
- gnuplot - gnuplot load/eval 在“pause -1”上嵌套太深
- php - 使用 ad lds 实例进行 PHP 登录
- android-studio - 如何将硬编码数据插入数据库
- .net - threadpool 是否会通过 thread.sleep 杀死他们已经休眠很长时间(超过 5 分钟)的线程?
- python - PyMongo:无法列出所有数据库
- postgresql - 返回具有特定字母(例如“c”)并且此后不能出现字母的结果
- mongodb - 从 mongo 子数组中查找字符串
- python - 在 python tkinter 中销毁函数后如何激活函数
- c++ - 如何传递回调函数将项目推送到向量中
- javascript - 每次点击将类添加到单个 div