Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询中和的语法错误_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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