已知几个离散点XY坐标,如何用SQL/PLS判断其变化趋势(递增、递减 、先增后减...等~~~),给点思路~不会哎~
解决方案 »
- oracle developer、forms 6i 和form builder什么关系?
- 一条查询SQL语句的问题!
- oracle报ORA-600 [6191] or ORA-600 [6193] 错误的解决
- 起机器都出现下列这个问题提示?
- 在csdn 我找不到发贴的地方:寻求诚信PHP技术人员合作
- 关于set serveroutput 默认关闭问题,如何默认是on状态
- 请教SQL的写法???
- 关于Oracle的日期字段
- PL/SQL Dev的使用感受
- Oracle 表名、字段名、视图名、存储过程名 是否区分大小写
- 急!oracle11g第二版中SQL developer试用问题!
- 这样的sql怎么写?
CREATE TABLE test
(point_id NUMBER(10), --点排序号
x_value NUMBER(10), --x坐标
y_value NUMBER(10), --y坐标
trend VARCHAR2(10));--变化趋势
--将值插入表
INSERT INTO test(x_value,y_value)
VALUES(3,9);
-- ......
--对离散点按x坐标排序(前提x坐标不重复)
UPDATE test a SET a.point_id=(SELECT COUNT(*) FROM test b WHERE a.x_value>=b.x_value);
--比较趋势
UPDATE test a SET a.trend=(SELECT CASE WHEN a.y_value >b.y_value THEN '+' --增
WHEN a.y_value <b.y_value THEN '-' --减
ELSE '0' END --持平
FROM test b WHERE a.point_id=b.point_id+1) ;
--输出结果
SELECT * FROM test ;
POINT_ID X_VALUE Y_VALUE TREND
----------- ----------- ----------- ----------
1 2 3
2 3 5 +
3 4 3 -
4 6 1 -
5 8 9 +
WHERE a.x_value>=b.x_value);
这个怎么理解呀?~~~能不能讲解一下呀?~~谢谢了~_~