首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

今天被伤到了,问个有关问题

2012-03-09 
今天被伤到了,问个问题mssql 中 where 后面的条件是按从左向右执行还是从右向左执行?我回答说这个不定,要

今天被伤到了,问个问题
mssql 中 where 后面的条件是按从左向右执行还是从右向左执行?

我回答说这个不定,要看执行计划。面试官直接一句,谁说不定的?
我只好回家,如果有顺序,可能是从左住右吧。
面试官又是一句,谁说是从左往右。
我说应该是不定,要看计划,如果中间一列是有索引的,边上的列没有索引,不可能先执行两边的啊?
面试官说谁说的?
我擦,我火了,我说这个实验就知道了。
擦,老子就直接走了。

说实话,好多东西都是想得不是很定的,所以我想问问高手,where后面的到底有没有顺序?我反正觉得没有。

[解决办法]

SQL code
--我认为是从左到右执行declare @t table (col1 int,col2 int,col3 int,col4 int)insert into @t select 1,2,3,4select * 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
[解决办法]

热点排行