SQL语句Where中使用别名作为判断条件
2013-09-07 23:46
519 查看
当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件.
例如下面的SQL语句: select id, (c1 + c2) as s from t1 where s > 100
SQL Server 报错: "列名 s 无效"
当然,写成
select id, (c1 + c2) as s from t1 where (c1 + c2) > 100
就没问题了.
可是当表达式复杂时就很繁琐了.
有没有可以在Where中使用这样的列名的办法?
或者有什么其他办法可以解决这类问题呢?
解决方法:
SQL code复制代码
由于在Where语句不能直接使用列别名,因此我们需要将Sql语句给包装一下
在ORACLE中,在WHERE子句中引用列别名会出错,这是为什么呢?
因为:SELECT 语句的执行顺序
1. from语句
2. where语句(结合条件)
3. start with语句
4. connect by语句
5. where语句
6. group by语句
7. having语句
8. model语句
9. select语句
10. union、minus、intersect等集合演算演算
11. order by语句
例如下面的SQL语句: select id, (c1 + c2) as s from t1 where s > 100
SQL Server 报错: "列名 s 无效"
当然,写成
select id, (c1 + c2) as s from t1 where (c1 + c2) > 100
就没问题了.
可是当表达式复杂时就很繁琐了.
有没有可以在Where中使用这样的列名的办法?
或者有什么其他办法可以解决这类问题呢?
解决方法:
SQL code复制代码
select t2.* from (select id, (c1 + c2) as c from t1) t2 where c > 100 --或者 select t2.* from (select id, c = c1+c2 from t1) t2 where c > 100
由于在Where语句不能直接使用列别名,因此我们需要将Sql语句给包装一下
在ORACLE中,在WHERE子句中引用列别名会出错,这是为什么呢?
因为:SELECT 语句的执行顺序
1. from语句
2. where语句(结合条件)
3. start with语句
4. connect by语句
5. where语句
6. group by语句
7. having语句
8. model语句
9. select语句
10. union、minus、intersect等集合演算演算
11. order by语句
相关文章推荐
- SQL语句Where中使用别名作为判断条件
- SQL语句Where中使用别名作为判断条件
- SQL语句Where中使用别名作为判断条件
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- 在ASP中使用SQL语句之2:用WHERE子句设置查询条件
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- sql语句中where、group by、having、order by 是否可以使用别名
- SQL中where语句不能使用直接跟在select后列的别名
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- 当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件
- ireport中当使用connection方式获得数据源时如何构造sql语句的where条件。
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件
- yii框架中findall方法取数据使用总结,包括select各种条件,where条件,order by条件,limit限制以及使用单纯sql语句query时占位符的使用等
- Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- sql server select查询语句 我想把AS后面重命名的列名 作为where语句的条件
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- 使用SQL语句如何实现条件判断