现有表: km kmdm begin end km2 kmdm2 begin2 end2 sid dw
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 1
102 aab 100.00 50.00 201 bbb 120.00 30.00 2 1
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 1 c 10 1
301 ccc 100.00 50.00 11 1
303 cab 23.00 12.00 11 1 d e 20 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
501 aaa 100.00 50.00 402 bba 120.00 30.00 21 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
507 asd 100.00 50.00 402 bba 120.00 30.00 21 1
hz 700.00 350.00 hz 963.00 272.00 30 1
___________________________________________________________________________________________________
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 2
102 aab 100.00 50.00 201 bbb 120.00 30.00 2 2
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 2 c 10 2
301 ccc 100.00 50.00 11 2
303 cab 23.00 12.00 11 2 d e 20 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
502 aac 100.00 50.00 402 bba 120.00 30.00 21 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
507 asd 100.00 50.00 402 bba 120.00 30.00 21 2
507 asd 100.00 50.00 403 bca 120.00 30.00 21 2 hz XXX.00 XXX.00 hz XXX.00 XXX.00 30 2 这里面有很多重复的字段 怎么样才能把重复的字段取消掉 或者替换成NULL也好 让它显示为 例如 km kmdm begin end km2 kmdm2 begin2 end2 sid dw
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 1
102 aab 100.00 50.00
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 1 c 10 1
301 ccc 100.00 50.00 11 1
303 cab 23.00 12.00 11 1 d e 20 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
507 asd 100.00 50.00 402 bba 120.00 30.00 21 1
hz 700.00 350.00 hz 963.00 272.00 30 1
___________________________________________________________________________________________________
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 2
102 aab 100.00 50.00
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 2 c 10 2
301 ccc 100.00 50.00 11 2
303 cab 23.00 12.00 11 2 d e 20 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
502 aac 100.00 50.00 402 bba 120.00 30.00 21 2
507 asd 100.00 50.00 403 bca 120.00 30.00 21 2 hz XXX.00 XXX.00 hz XXX.00 XXX.00 30 2
谢谢各位
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 1
102 aab 100.00 50.00 201 bbb 120.00 30.00 2 1
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 1 c 10 1
301 ccc 100.00 50.00 11 1
303 cab 23.00 12.00 11 1 d e 20 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
501 aaa 100.00 50.00 402 bba 120.00 30.00 21 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
507 asd 100.00 50.00 402 bba 120.00 30.00 21 1
hz 700.00 350.00 hz 963.00 272.00 30 1
___________________________________________________________________________________________________
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 2
102 aab 100.00 50.00 201 bbb 120.00 30.00 2 2
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 2 c 10 2
301 ccc 100.00 50.00 11 2
303 cab 23.00 12.00 11 2 d e 20 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
502 aac 100.00 50.00 402 bba 120.00 30.00 21 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
507 asd 100.00 50.00 402 bba 120.00 30.00 21 2
507 asd 100.00 50.00 403 bca 120.00 30.00 21 2 hz XXX.00 XXX.00 hz XXX.00 XXX.00 30 2 这里面有很多重复的字段 怎么样才能把重复的字段取消掉 或者替换成NULL也好 让它显示为 例如 km kmdm begin end km2 kmdm2 begin2 end2 sid dw
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 1
102 aab 100.00 50.00
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 1 c 10 1
301 ccc 100.00 50.00 11 1
303 cab 23.00 12.00 11 1 d e 20 1
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 1
507 asd 100.00 50.00 402 bba 120.00 30.00 21 1
hz 700.00 350.00 hz 963.00 272.00 30 1
___________________________________________________________________________________________________
a b 1
101 aaa 100.00 50.00 201 bbb 120.00 30.00 2 2
102 aab 100.00 50.00
103 aac 100.00 50.00 202 bbc 120.00 30.00 2 2 c 10 2
301 ccc 100.00 50.00 11 2
303 cab 23.00 12.00 11 2 d e 20 2
501 aaa 100.00 50.00 401 bbb 120.00 30.00 21 2
502 aac 100.00 50.00 402 bba 120.00 30.00 21 2
507 asd 100.00 50.00 403 bca 120.00 30.00 21 2 hz XXX.00 XXX.00 hz XXX.00 XXX.00 30 2
谢谢各位
解决方案 »
- 关于oracle性能优化的问题
- oracle在运行高峰期老是提示存储空间不足,导致新用户连接不上服务器
- REP-1401,ORA-01403错误
- 求oracle 下sql/plus常用命令 sql server 分析器相对应的命令集
- 原为number(9,2)的列,已经写有数据了;我调试时改成了number(38,19)了,想改回来却提示必须清空数据?
- 这两个Provider有什么不一样呀?
- oracle 无法打开可以装载
- !!!急急,请问oracle的sql语句里面如何将23.0123转换成整型23啊???
- 请问ORACL的默认用户名及密码是什么?
- oracle listener.log 提示的什么问题?
- 求树形结构数据自定义的递归查询?
- 请教一条月份费用分拆的SQL
.........
楼主是想将左右两段的km和km2字段的值中,如果和前一条记录值相同,则不显示对吧
case when km=lag(km)over(order by ..) then null else km end
km2字段同样处理楼主可以试试
如果还写不了说明清楚一点,这个表不知道按什么排序,而且中间是不是空上一段,看着有点别扭..
我写个km字段的,你参照下改其他的字段代码select case when km=lag(km)over(order by rownum) then null else km end km,
case when km=lag(km)over(order by rownum) then null else kmdm end kmdm ,
......
from ...
where ...
select decode(flag_a,0,km) km,
decode(flag_a,0,kmdm)kmdm,
....
from(select t.*,
case when km=lag(km)over(partition by rownum) then 1 else 0 end flag_a,
case ................ flag_b..
from table1 t)
而我现在的表 就是像最上面的表一样 例如 DW=2那里的D部分 有2个501 E部分 有2个 401 ,402 这些数据是一摸一样的 完全重复 所以 我只要留下一个 其他显示NULL 也就是变成题目最下方那个DW=2的样子。。 我表达能力不是很好 真是麻烦你了 呵呵
这是1个表的5个部分?看着挺别扭
这样的话,a,b,c,d,e之间还有什么联系呢?
你分开写成
select distinct km ,kmdm,begin,end from table1;
select distinct km1 ,kmdm1,begin1,end1 from table1;
....
不是更好?