数据导入120

zspsys 2010-05-28 10:52:08
我现在想把一个表a的数据(id是唯一的,都大于18位,但是长度不一样)导入到另外一张表b里(id长度18位,有主键)
很明显,表a的id是要截取的,但是怎么截取都有重复数据,请高手帮帮忙,有什么办法能让它们不重复。
...全文
140 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueliren 2010-05-28
  • 打赏
  • 举报
回复
呵呵 不懂
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 xys_777 的回复:]
引用 25 楼 zspsys 的回复:
引用 20 楼 dla001 的回复:
IV 2008 12 08 101325573 2009 01 08 151050645
从数据来看时间部分貌似没用。取101325573 151050645呢?

有些数据不是这样的 而且id的长度也不一样

你用临时表把 那些数据先取出来,处理好了再导过去
[/Quote]
恩,我是用临时表处理的
永生天地 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 zspsys 的回复:]
引用 20 楼 dla001 的回复:
IV 2008 12 08 101325573 2009 01 08 151050645
从数据来看时间部分貌似没用。取101325573 151050645呢?

有些数据不是这样的 而且id的长度也不一样
[/Quote]
你用临时表把 那些数据先取出来,处理好了再导过去
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 dla001 的回复:]
IV 2008 12 08 101325573 2009 01 08 151050645
从数据来看时间部分貌似没用。取101325573 151050645呢?
[/Quote]
有些数据不是这样的 而且id的长度也不一样
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 xys_777 的回复:]
一个思路
lz试试,可行否

SQL code

create table tb (id varchar(50))
insert tb
select 'IV2008120810132557320090106111510364' union all
select 'IV2008120810132557320090106111721235' union all
select 'IV2……
[/Quote]
这个方法不错,谢了 嘿嘿 不过表里有接近60万条数据 得动态的加字母什么的
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 zspsys 的回复:]
引用 15 楼 yanglinqiang 的回复:
给出例子和规则

谢了,怎么着都是要写判断
[/Quote]
这个方法不错,谢了 嘿嘿 不过表里有接近60万条数据 得动态的加字母什么的
亮剑_ 2010-05-28
  • 打赏
  • 举报
回复
如果新表中的ID号没有特别需求,直接流水编号或用GUID就行了
亮剑_ 2010-05-28
  • 打赏
  • 举报
回复
这个主要是确定一个ID生成规则
有重复当然不能作主键
dla001 2010-05-28
  • 打赏
  • 举报
回复
IV 2008 12 08 101325573 2009 01 08 151050645
从数据来看时间部分貌似没用。取101325573 151050645呢?
永生天地 2010-05-28
  • 打赏
  • 举报
回复
一个思路
lz试试,可行否

create table tb (id varchar(50))
insert tb
select 'IV2008120810132557320090106111510364' union all
select 'IV2008120810132557320090106111721235' union all
select 'IV2008120810132557320090106132529315' union all
select 'IV2008120810132557320090107160523036' union all
select 'IV2008120810132557320090107160921036' union all
select 'IV2008120810132557320090107161030630' union all
select 'IV2008120810132557320090107161545661' union all
select 'IV2008120810132557320090108150828317' union all
select 'IV2008120810132557320090108151050645'

select substring(id,5,12)+'-'+ ltrim(datediff(mi,stuff(stuff(stuff(substring(id,5,12),11,0,':'),9,0,':'),7,0,' '),stuff(stuff(stuff(substring(id,22,12),11,0,':'),9,0,':'),7,0,' ')))
from tb
/*
-------------------------------------
081208101325-41822
081208101325-41824
081208101325-41952
081208101325-43552
081208101325-43556
081208101325-43557
081208101325-43562
081208101325-44935
081208101325-44937

(所影响的行数为 9 行)

*/
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yanglinqiang 的回复:]
给出例子和规则
[/Quote]
谢了,怎么着都是要写判断
zspsys 2010-05-28
  • 打赏
  • 举报
回复
IV2008120810132557320090106111510364
IV2008120810132557320090106111721235
IV2008120810132557320090106132529315
IV2008120810132557320090107160523036
IV2008120810132557320090107160921036
IV2008120810132557320090107161030630
IV2008120810132557320090107161545661
IV2008120810132557320090108150828317
IV2008120810132557320090108151050645
这是几个没有截取前id的例子 长度都不一样

723201005220953188
723201005271657297
129200903201635458
80929085834129
81010152257038
81010165953100
这个是截取后的 我从17位开始截取18个字符
永生天地 2010-05-28
  • 打赏
  • 举报
回复
那你只取A表ID前15位(或者多少位,你自己看数据情况),

后三位用序号生成,如果不够就 14+4,如果空闲很多就16+2,17+1
yanglinqiang 2010-05-28
  • 打赏
  • 举报
回复
给出例子和规则
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dla001 的回复:]
取了是重复的,那么键值还有意义? 随即生成又不行,你的要求是矛盾的
[/Quote]
就是截取出来的id有一样的 表a里边的id长度都不一样 我现在是先把截取出来的数据放到一张临时表里的,用distinct查N多重复的
zspsys 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chuifengde 的回复:]
你这个命题都有矛盾
[/Quote]
sql语句导入的 把重复的改成和所有数据不重复就行了 但是还要有规则 上边这么一说我就崩溃了
永生天地 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zspsys 的回复:]
引用 2 楼 chuifengde 的回复:
b表中id的18位必须从原来a表中ID取吗?不能另外生成?

不让放大啊,让放大也不用这么麻烦了
[/Quote]
举出几个重复的例子看看,怎么弄
chuifengde 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zspsys 的回复:]
引用 1 楼 xuam 的回复:
表a的id 不导,表B的id自增不行?

不能另外生成,必须从表a截取 如果有重复的还要有规则的改成和所有id不重复的
[/Quote]
哦,有规则的改成,那就说规则就OK了
dla001 2010-05-28
  • 打赏
  • 举报
回复
取了是重复的,那么键值还有意义? 随即生成又不行,你的要求是矛盾的
nzperfect 2010-05-28
  • 打赏
  • 举报
回复
再者,你是怎么导的?T-sql 还是导入导出?
加载更多回复(9)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧