怎么删除SQL中重复的记录?1.有一个表(两个字段,AA,BB)?
怎么删除中重复的记录? 1.有一个表(两个字段,AA,BB)我想删除字段AA中有重复的记录(但是要保留下来一条,不要全删)...... 2.两个表(A表中有AA字段,B表中也有AA字段我想在A表中删除B表中存在的记录) 3.怎么在SQL中把查询出来的记录单独创建个表并且放进去(比如说查出10条记录要放在一个新建的表里.) 4.怎么在一个字段的数据中取其数据的前三位,如:电话号码 取前 三位数字(229). 本人对SQL不是很懂``所以希望知道的大虾们``帮帮忙咯``不甚感激~
尝试回答LZ的问题,仅供参考: 1、对于这种要求,必须保证表中有主键或者索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。 delete from 表 where aa in (select aa from 表 group by aa having count(aa) > 1) and bb not in (select max(bb) from 表 group by aa having count(aa) > 1); 2、有多种写法: delete A from B where A.AA = B.AA delete A from A,B where A.AA = B.AA delete A where AA in (select AA from B) 3、使用into关键字: select * into 新表名 from 原表 4、取数据前3位,字段必须是类似char类型,使用类似substring这样的函数(SYBASE是substring,ORACLE是substr): select substring(字段,1,3) from 表名