我的数据看起来像:
data.csv
company year value
A yz x
当值为<时,我不想抓住所有列x和年份分别为2005年,2006年,2007年,2008年等。
SELECT * FROM data WHERE value < "X" AND year ="2005" AND year="2006" AND year="2007" AND year="2008";
以上结果一无所获。基本上就是:给我所有公司的价值一直低于最后一年的X.
答案 0 :(得分:2)
你的条件永远不会成真。它不能同时是2005年和2006年。
尝试in
:
SELECT *
FROM data
WHERE value < "X"
AND year in ("2005", "2006", "2007", "2008")
;
in
会检查year
是否为以下值之一。
或or
:
SELECT *
FROM data
WHERE value < "X"
AND ( year = "2005"
or year = "2006"
or year = "2007"
or year = "2008"
)
;
or
只检查左侧或右侧条件是否为真。
答案 1 :(得分:0)
这应该适合你:
SELECT * FROM data WHERE value < "X" AND YEAR IN (2005, 2006, 2007, 2008)
答案 2 :(得分:0)
考虑将字符串格式从一年更改为日期时间,然后您可以选择如下:
SELECT * FROM data WHERE value < "X" AND year(year) >=2005;
否则你可以使用:
SELECT * FROM data WHERE value < "X" AND YEAR IN (2005, 2006, 2007, 2008);