日期:2014-05-18 浏览次数:20641 次
--我认为是从左到右执行 declare @t table (col1 int,col2 int,col3 int,col4 int) insert into @t select 1,2,3,4 select * from @t where col4>'d' and col1>'a' and col2>'b' and col3>'c' /* Conversion failed when converting the varchar value 'd' to data type int. */
------解决方案--------------------
语法解释和语句的执行不是一个逻辑。
逻辑运算符的优先顺序是 NOT(最高),然后是 AND,最后是 OR。不过,可以在搜索条件内使用括号来表示优于此优先顺序的运算符。根据查询优化器所做的选择,逻辑运算符的求值顺序可能有所不同。
详见:T-SQL 搜索条件
------解决方案--------------------
没有顺序,无需纠结。
------解决方案--------------------
面试官这么问,要么他不懂,要么就是故意看你到底懂不懂,你要坚定,他就动摇,你要犹豫,首先说明你不太懂。
------解决方案--------------------
感觉没顺序的说。。。楼主被纠结了。
------解决方案--------------------
------解决方案--------------------
难道ORACLE中和SQL SERVER 中不一样:
http://wenku.baidu.com/view/90fbcd00de80d4d8d15a4fa8.html
------解决方案--------------------