SELECT * FROM FEEDER A WHERE A.CF = 'X' OR A.SF = 'X' AND A.YEAR = 2021;
SELECT *
FROM FEEDER A
WHERE A.CF = 'X'
OR A.SF = 'X'
AND A.YEAR = 2021;
当我运行上面的查询时,它返回了所有年份!我只想要2021年,其中CF或SF是X。
46scxncf1#
你只需要两个括号-
SELECT * FROM FEEDER A WHERE (A.CF = 'X' OR A.SF = 'X') AND A.YEAR = 2021;
WHERE (A.CF = 'X'
OR A.SF = 'X')
或者可以将您的查询缩短为-
SELECT * FROM FEEDER A WHERE 'X' IN (A.CF, A.SF) AND A.YEAR = 2021;
WHERE 'X' IN (A.CF, A.SF)
g52tjvyc2#
AND运算符的优先级高于OR运算符,因此您的查询与:
AND
OR
SELECT * FROM FEEDER AWHERE (A.CF = 'X')OR (A.SF = 'X' AND A.YEAR = 2021);
WHERE (A.CF = 'X')
OR (A.SF = 'X' AND A.YEAR = 2021);
并且将返回:CF = 'X'的任何年份;或者仅当SF = 'X'的2021年。
CF = 'X'
SF = 'X'
如果要修复您的查询,则需要执行以下任一操作:
SELECT * FROM FEEDER AWHERE A.CF = 'X'AND A.YEAR = 2021OR A.SF = 'X'AND A.YEAR = 2021;
AND A.YEAR = 2021
或者,稍微更容易阅读,使用方括号:
SELECT * FROM FEEDER AWHERE ( A.CF = 'X' OR A.SF = 'X')AND A.YEAR = 2021;
WHERE ( A.CF = 'X'
或者,使用IN运算符:
IN
SELECT * FROM FEEDER AWHERE 'X' IN (A.CF, A.SF)AND A.YEAR = 2021;
2条答案
按热度按时间46scxncf1#
你只需要两个括号-
或者可以将您的查询缩短为-
g52tjvyc2#
AND
运算符的优先级高于OR
运算符,因此您的查询与:并且将返回:
CF = 'X'
的任何年份;或者仅当SF = 'X'
的2021年。如果要修复您的查询,则需要执行以下任一操作:
或者,稍微更容易阅读,使用方括号:
或者,使用
IN
运算符: