sql - WHERE 语句不适用于数字和日期(SQLite)
问题描述
我在 DBlite 程序(我必须在大学使用的垃圾程序)中遇到了 where 部分的日期和数字的问题。我的代码如下所示:
SELECT Customers_Details_FULL_LOCKED.email
FROM Customers_Details_FULL_LOCKED
LEFT JOIN Purchases_FULL_LOCKED ON Customers_Details_FULL_LOCKED.customer_id
= Purchases_FULL_LOCKED.Cust_ID
WHERE Purchases_FULL_LOCKED.Purchase_Price = '>20' AND
Customers_Details_FULL_LOCKED.marketing_opt_in = 'Yes' AND
Purchases_FULL_LOCKED.Purchase_Date = '<2014-01-01';
目标:我希望我的代码显示购买超过 20 件商品的人的电子邮件,他们选择了营销并且购买日期在 2014 年之前。
我知道的:
我知道 opt_in 声明有效,但购买价格和购买日期都不起作用,单独或一起。
我也知道,对于购买价格来说,无论是小数还是 CAST 都无关紧要,似乎仍然不起作用。
解决方案
如果 Purchase_Price 是一个数字值,您应该将该列与一个运算符<, >, >= ..
和一个数字值进行比较。
写Purchase_Price > 20
而不是Purchase_Price = '>20'
Here 它告诉:Purchase_Price 必须大于 20。
而不是Purchase_Price 等于文本 '>20'
与日期相同,但您应该比较日期值
推荐阅读
- c# - 如何修复 MissingMethodException 错误,该错误由从启动的接口类中的方法调用产生
- process - 复制文件夹完成后打印一条消息
- maven - 如何在 IntelliJ 2019.2 中隐藏 Maven 构建阶段工具窗口?
- android - Flutter 使用 setState() 方法从本地方法调用更新 UI
- scheme - 为什么我的计数器不能使用“alternate”功能?
- java - 具有 buildship 集成的 Eclipse 2019-06:DocumentBuilder 不可访问
- r - 如何将主题分析的数据作为每行一个文档读取?
- asp.net - IIS-Windows-Authentication 陷入无限循环
- laravel - 在@foreach 中对孩子使用“where”和“limit”
- linux - 在 BASH 脚本中将日期插入“MAIL”消息正文