Hive中and和or的执行顺序
2017-10-25 21:21
2847 查看
今天在网上看到hive中and的执行优先级比or高,觉得很奇怪,于是就亲自尝试了一下,发现果然如此,下面是我测试的一些简单语句:
select 1 from student where 1=0 or 1=1 and 1 = 0;
执行结果为空
select 1 from student where 1=0 or 1=1 and 1 =1;
执行结果为1
第二个select语句毫无疑问where语句后面的值返回为true,无论and或者or的优先级如何都一样,但是第一个select语句缺不是从左到右执行的,相当于select 1 from student where 1 = 0 or (1=1 and 1 = 0);
在此问一个问题,where语句后面可以跟两个in (子查询)吗 ? 如select name from student where name in (select nam from student) and name in (select name from student);
我试过这样写,但却是错误的,错误如下:
这样的写法有什么问题?如何才是正确的写法?
select 1 from student where 1=0 or 1=1 and 1 = 0;
执行结果为空
select 1 from student where 1=0 or 1=1 and 1 =1;
执行结果为1
第二个select语句毫无疑问where语句后面的值返回为true,无论and或者or的优先级如何都一样,但是第一个select语句缺不是从左到右执行的,相当于select 1 from student where 1 = 0 or (1=1 and 1 = 0);
在此问一个问题,where语句后面可以跟两个in (子查询)吗 ? 如select name from student where name in (select nam from student) and name in (select name from student);
我试过这样写,但却是错误的,错误如下:
这样的写法有什么问题?如何才是正确的写法?
相关文章推荐
- SQL语句中的AND和OR执行顺序问题
- 关于sql中or与and的执行顺序
- oracle where语句中and,or,not的执行顺序
- sql中的or与and的执行顺序问题
- Hive中SQL执行语句报错“Display all 469 possibilities? (y or n)”
- AND的优先顺序高于OR的优先顺序
- sql中and及or 的执行效率
- 构造函数的执行顺序---派生类构造函数 and 父类构造函数 and 成员对象构造函数
- hive语句执行顺序
- sql的where子句中包含多个and和or是计算顺序问题
- js执行顺序(Compile phase and execute phase)
- Salesforce事务执行顺序(Triggers and Order of Execution)
- mysql sql语句中用括号处理or和and的运算顺序
- HIVE点滴:group by和distinct语句的执行顺序
- hive的strict模式;where,group by,having,order by同时使用的执行顺序
- Unity3D脚本各函数执行顺序And不同脚本的执行顺序
- SQL语句中 and or执行优先级
- hive的strict模式;where,group by,having,order by同时使用的执行顺序
- hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR
- postgreSQL中where子句执行顺序 - 多个and从左到右依次执行