表结构T1:
BEG_VAL NUMBER,
END_VAL NULBER,
DAY_VAL NULBER.查询T1中的所有DAY_VAL字段的值,并比较BEG_VAL和END_VAL的大小,如果BEG_VAL<END_VAL,则DAY_VAL为正数,否则为负数。
怎么实现啊?撒份了,这个难不住论坛的兄弟把!!
BEG_VAL NUMBER,
END_VAL NULBER,
DAY_VAL NULBER.查询T1中的所有DAY_VAL字段的值,并比较BEG_VAL和END_VAL的大小,如果BEG_VAL<END_VAL,则DAY_VAL为正数,否则为负数。
怎么实现啊?撒份了,这个难不住论坛的兄弟把!!
select day_val,
case when beg_val < end_val then abs(day_val) then -abs(day_val) end as status
from t1
select decode((BEG_VAL-end_val)-abs(BEG_VAL-end_val),0,abs(DAY_VAL),0-abs(DAY_VAL))
from t1
没测试 不过大概是这个意思~
第二个 then 应该是 else,写错了~~
BEG_VAL NUMBER,
END_VAL NULBER,
DAY_VAL NULBER.查询T1中的所有DAY_VAL字段的值,并比较BEG_VAL和END_VAL的大小,如果BEG_VAL<END_VAL,则DAY_VAL为正数,否则为负数。
怎么实现啊?撒份了,这个难不住论坛的兄弟把!!select t1.beg_val, t1.end_val, t1.day_val,
(case when beg_val<end_val then abs(day_val) else -abs(day_val) end) as abs_day_val
from t1;
scott@TBWORA> CREATE table t1(
2 beg_val number(18,0),
3 end_val number(18,0),
4 day_val number(18,0)
5 );表已创建。scott@TBWORA>
scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(11,23,-99);已创建 1 行。scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(12,9,168);已创建 1 行。scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(14,39,127);已创建 1 行。scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(128,61,-9);已创建 1 行。scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(1888,1888,-179);已创建 1 行。scott@TBWORA> insert into t1(beg_val,end_val,day_val) values(75,75,893);已创建 1 行。scott@TBWORA> commit;提交完成。scott@TBWORA> select t1.beg_val, t1.end_val, t1.day_val,
2 (case when beg_val<end_val then abs(day_val) else -abs(day_val) end) as abs_day_val
3 from t1; BEG_VAL END_VAL DAY_VAL ABS_DAY_VAL
---------- ---------- ---------- -----------
11 23 -99 99
12 9 168 -168
14 39 127 127
128 61 -9 -9
1888 1888 -179 -179
75 75 893 -893已选择6行。