sql 打乱 原有字段ID
来源:百度知道 编辑:UC知道 时间:2024/05/13 10:01:24
原来数据是:
表是:COMPANY
数据库中,标识列(ID)有标题(COMPANY_TITLE),内容(COMPANY_DESC),地址(ADDRESS),电话(TEL),创建时间(CREATE_TIME)
现在要把标题重复的给找出来,然后重复的记录中保留1条,其余相同的统统删掉!
字段值很多,重复的有N多 如:
1 电信 江苏分公司 地址 电话 2009-08-01
2 电信 浙江分公司 地址 电话 2009-08-02
3 电信 上海分公司 地址 电话 2009-08-03
4 网通 江苏分公司 地址 电话 2009-08-01
5 网通 浙江分公司 地址 电话 2009-08-02
6 网通 上海分公司 地址 电话 2009-08-03
打乱后的结果为:
5 电信 江苏分公司 地址 电话 2009-08-01
2 电信 浙江分公司 地址 电话 2009-08-02
6 电信 上海分公司 地址 电话 2009-08-03
3 网通 江苏分公司 地址 电话 2009-08-01
1 网通 浙江分公司 地址 电话 2009-08-02
6 网通 上海分公司 地址 电话 2009-08-03
排列顺序是随机的!
排列后的数据,在给本来的表
(select * into COMPANY FROM COMPAN)大概就是这么个意思。
我用的是SQL 2000
select * from COMPAN order by newid() 这样写我当然知道的啊!
原表的顺序打乱后然后再插入原表
表是:COMPANY
数据库中,标识列(ID)有标题(COMPANY_TITLE),内容(COMPANY_DESC),地址(ADDRESS),电话(TEL),创建时间(CREATE_TIME)
现在要把标题重复的给找出来,然后重复的记录中保留1条,其余相同的统统删掉!
字段值很多,重复的有N多 如:
1 电信 江苏分公司 地址 电话 2009-08-01
2 电信 浙江分公司 地址 电话 2009-08-02
3 电信 上海分公司 地址 电话 2009-08-03
4 网通 江苏分公司 地址 电话 2009-08-01
5 网通 浙江分公司 地址 电话 2009-08-02
6 网通 上海分公司 地址 电话 2009-08-03
打乱后的结果为:
5 电信 江苏分公司 地址 电话 2009-08-01
2 电信 浙江分公司 地址 电话 2009-08-02
6 电信 上海分公司 地址 电话 2009-08-03
3 网通 江苏分公司 地址 电话 2009-08-01
1 网通 浙江分公司 地址 电话 2009-08-02
6 网通 上海分公司 地址 电话 2009-08-03
排列顺序是随机的!
排列后的数据,在给本来的表
(select * into COMPANY FROM COMPAN)大概就是这么个意思。
我用的是SQL 2000
select * from COMPAN order by newid() 这样写我当然知道的啊!
原表的顺序打乱后然后再插入原表
select * from COMPAN order by newid() --sqlserver
select * from COMPAN order by rand() --mysql
select * from COMPAN dbms_random.value(); --oracle
你先删重复的数据,然后再UPDATE随机的ID不行吗??ID是KEY不?
你ORDERBY下试下