欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql中的一个表达式太长了,能取少数名,在表达式里用吗

更新时间: 2014-01-05 02:14:33 责任编辑: Author_N1

 

sql中的一个表达式太长了,能取个别名,在表达式里用吗?
比如下面这个sql里trunc((T2.C700020016-T2.C700020015)/60/60/24,0))用了好几次,我想给他取个别名,但是不能作为sql的查询结果显示出来


select decode(trunc((T2.C700020016-T2.C700020015)/60/60/24,0),0,'00',CASE WHEN length(trunc((T2.C700020016-T2.C700020015)/60/60/24,0)))>1 then trunc((T2.C700020016-T2.C700020015)/60/60/24,0)) else ('0' || trunc((T2.C700020016-T2.C700020015)/60/60/24,0))) end || '天' || decode(trunc(mod((T2.C700020016-T2.C700020015),60*60*24)/60/60,0),0,'00',trunc(mod((T2.C700020016-T2.C700020015),60*60*24)/60/60,0)) || '小时' || decode(trunc(mod((T2.C700020016-T2.C700020015),60*60)/60,0),0,'00',trunc(mod((T2.C700020016-T2.C700020015),60*60)/60,0)) || '分' from t153 t2

--参考方法--
再套个查询就可以了吧
select decode(a........) from (
  select t2.*,trunc((T2.C700020016-T2.C700020015)/60/60/24,0) a,trunc(mod((T2.C700020016 - T2.C700020015), 60 * 60) / 60, 0) b from (
  from t153 t2)  )
--参考方法--
WITH r AS
 (SELECT (1343873132 - 1343706107) x FROM dual)
SELECT lpad(trunc(x / 60 / 60 / 24), 2,0) 
--参考方法--
 '天' 
--参考方法--

       lpad(trunc(MOD(x, 60 * 60 * 24) / 60 / 60), 2,0) 
--参考方法--
 '小时' 
--参考方法--

       lpad(trunc(MOD(x, 60 * 60) / 60), 2,0) 
--参考方法--
 '分'
FROM   r
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:33
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7423/
本文WWW.DOC100.NET DOC100.NET版权所有。