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

怎么在select语句中实现计算顺序

2012-03-06 
如何在select语句中实现计算顺序大概意思如下:A表c1c2c31005010如果select语句是如下形式select(c2+10)asc

如何在select语句中实现计算顺序
大概意思如下:
A表
c1c2c3
1005010
如果select语句是如下形式
select   (c2+10)   as   c1,
                (c3/2)   as   c2,
                  c3
from   A
想得到的结果是
c1c2c3
15510
要求:先运算(c3/2),将结果作为c2后再执行(c2+10)作为c1,该如何实现上述的select语句?
注意:上述的select语句查询的结果是
c1c2c3
60510
但这不是我想要的,不知道意思说清楚了吗。

[解决办法]
--try

create table #A(c1 int,c2 int,c3 int)
insert into #A select 100,50,10

select * from #A


select (c3/2+10) as c1,(c3/2) as c2,c3
from #A

drop table #A

[解决办法]
use wangtiecheng 's test table #A
变通处理
select (select (c2+10) from (select (c3/2) as c2 from #A)t)as c1,(c3/2) as c2,c3 from #A
[解决办法]
yhtapmys(极品猪) ( ) 信誉:100 Blog 加为好友 2007-05-16 13:42:25 得分: 0


use wangtiecheng 's test table #A
变通处理
select (select (c2+10) from (select (c3/2) as c2 from #A)t)as c1,(c3/2) as c2,c3 from #A

的道理其实是在sql级别的式子展开。
总之,现在大家的实现方法依然是展开式子。
而并没有从数据库上考虑。
例如,C语言中
int i=1;
int a=i++,i+10,i--,i*8;
最后输出i=18;a=17;
这个就是楼主需要的吧。
但是,数据库终归是数据库,而不是C语言。

热点排行