表名:量距起点号 终点号 距离
II-20 III-1 350.583
III-1 III-2 1261.512
III-1 II-20 350.615
III-2 III-1 1261.501
III-2 D1 18.077如何去掉重复的边,例如:“II-20 III-1”和“III-1 II-20”只能算一条边,上表查询结果其边数为3,而不是5,这个SQL语句如何写
II-20 III-1 350.583
III-1 III-2 1261.512
III-1 II-20 350.615
III-2 III-1 1261.501
III-2 D1 18.077如何去掉重复的边,例如:“II-20 III-1”和“III-1 II-20”只能算一条边,上表查询结果其边数为3,而不是5,这个SQL语句如何写
insert into tb values('II-20' ,'III-1' ,350.583 )
insert into tb values('III-1' ,'III-2' ,1261.512)
insert into tb values('III-1' ,'II-20' ,350.615 )
insert into tb values('III-2' ,'III-1' ,1261.501)
insert into tb values('III-2' ,'D1' ,18.077 )
goselect m.* from tb m , tb n where m.起点号 = n.终点号 and m.终点号 = n.起点号 and m.起点号 > m.终点号
union all
select m.* from tb m where not exists(select 1 from tb n where m.起点号 = n.终点号 and m.终点号 = n.起点号)drop table tb/*
起点号 终点号 距离
---------- ---------- --------------------
III-1 II-20 350.615
III-2 III-1 1261.501
III-2 D1 18.077(所影响的行数为 3 行)
*/
union
select 终点号,起点号 from 量距 where 起点号<=终点号
select m.起点号 from tb m , tb n where m.起点号 = n.终点号 and m.终点号 = n.起点号 and m.起点号 < m.终点号)抄dawugui的! :)