已知几个离散点XY坐标,如何用SQL/PLS判断其变化趋势(递增、递减 、先增后减...等~~~),给点思路~不会哎~

解决方案 »

  1.   

    很牛啊,现在都流行用SQL来处理游戏的流程,和其它程序流程了.
      

  2.   

    --先建表
    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 +
      

  3.   

    UPDATE t_trend a SET a.point_id=(SELECT COUNT(*) FROM t_trend b 
         WHERE a.x_value>=b.x_value);
    这个怎么理解呀?~~~能不能讲解一下呀?~~谢谢了~_~