注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HelloWorld

echo "Hello world !"

 
 
 

日志

 
 

SQL语句Where中使用别名作为判断条件  

2014-05-07 21:27:46|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件.
  例如下面的SQL语句: 
SQL code
 
select id, (c1 + c2) as s
from t1
where s > 100 

  SQL Server 或者(mysql报错) 报错: "列名 s 无效" 
  
  当然,写成 
SQL code
 
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
 
再比如:
 SELECT t2 . *  FROM ( SELECT c, sum( r ) AS tt FROM tb GROUP BY c) t2
WHERE tt >200

 

或者使用having语句:

SELECT c, sum( r ) AS tt

FROM tb

GROUP BY c

HAVING tt>200


 

您可能还喜欢以下内容:

  1. 美食技术大全
  2. 张雨生怀旧金曲
  3. 张国荣怀旧金曲
  4. 梅艳芳怀旧金曲
  5. 周杰伦金曲大全
  6. 郭德纲相声大全
  7. 铁路车票知识大全
  8. 航空机票知识大全
  9. 保险行业知识大全
  10. 减肥瘦身知识大全
  11. 郑多燕减肥操大全
  12. 瑜伽健身教学大全
  评论这张
 
阅读(53)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017