SQL查询中和的语法错误
我在和附近说不正确的语法时出错。我知道这是因为括号SQL查询中和的语法错误,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在和附近说不正确的语法时出错。我知道这是因为括号 SELECT * FROM EMP WHERE Date BETWEEN ('15-01-2014' AND GETDATE()) AND CODE IN ('CAR', 'CSC', 'HAMTI') 我担心,如果我删除getdate附近的括号,那么对于另一个和将有不同的含义 关于如何编写此查询,以及如何分离括号内的代码,您有什么想法吗?FWIW,在这种情况下,由于您只有两个条件,因此不存在歧义。但是,要修复此处的语法,请将第一个括号移
SELECT *
FROM EMP
WHERE Date BETWEEN ('15-01-2014' AND GETDATE()) AND CODE IN ('CAR', 'CSC', 'HAMTI')
我担心,如果我删除getdate附近的括号,那么对于另一个和将有不同的含义
关于如何编写此查询,以及如何分离括号内的代码,您有什么想法吗?FWIW,在这种情况下,由于您只有两个条件,因此不存在歧义。但是,要修复此处的语法,请将第一个括号移回
日期之前:
SELECT * FROM EMP
WHERE (
Date BETWEEN '15-01-2014' AND GETDATE()
)
AND CODE IN ('CAR', 'CSC', 'HAMTI')
您没有任何OR,括号是无用的,但是GETDATE()可能是问题所在。@plalx:但我有另一个,所以我很抱歉,我很高兴您希望从查询中消除歧义,但是如果您所有的AND都是真的,不管它们在哪个子组中。您的括号是无用的(它们位于结构之间的内部),即使放置正确也不会产生任何影响。@Xedni:这正是我的意图,只是我的英语写得不好,我担心。谢谢:)我会尽力理解这些和任何地方的条件是如何不影响这里的。非常感谢Xedni,但我可以理解,任何地方的环境和条件如何不会影响我们是否有括号,以及为什么某个地方的环境和条件会影响我们吗?我知道这很愚蠢,可以用一个很小的例子来解释吗?或任何链接?我可以通过1或0和0->1和0->0 |(1或0)和0->1和0->0 | 1或(0和0)->1或0->1