请问:SQL转换行列!!

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:31:03
用SQl怎么写下面的转换啊? 用PL/SQL也行
原表:
Time是升序排列 t1<t2<t3...
Time Old_Value New_Value
t1 A
t2 A B
t3 B A
t4 A B
... ... ...

转换成:
Value Old_Time New_Time
A t1 t2
B t2 t3
A t3 t4
B t4
... ... ...

谢谢啊!
原表有三个字段,Time, Old_Value, New_value. 新表也是三个字段, Vaule, Old_Time, New_Time。 Value的值只有A或是B,是在不同时间的变化。 具体的说:原表里t1时,old_value没有值,new_value是A。在t2时,old_value是t1时的new_value A,而此时的new_value是B。在t3时,old_value是t2时的new_value B,而此时的new_value变成了A。 要变成的表是value字段以变化的先后时间排列,具体而言,第一行的value是原表中第一次变化前value的值A,old_time是t1,new_time是t2,t2即value从A表到B的时间。第二行是原表中第一次变化后的值B,old_time是value从A变成B的时间,new_time是value从B变成A的时间。以此类推。 这样清楚吗? 谢谢啊。 比较复杂啊,需要用PL/SQL

没仔细看你的题目,好像有点乱,呵呵

如果的确是SQL行列转换的问题,建议你转变一下处理思路。因为这种问题仅靠SQL解决一直是个比较麻烦的问题,你可以去各大BBS相关分类中去参考。而往往调整一下处理方法可以得到更简单可靠的办法【这样说是因为我之前也遇到类似的情况,后来调整了想法,反倒比较容易实现】。

字段名你写清楚了。。。

看了我半天,实在是没有看出什么规律来~~