CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

30分求 简单insert 问题

楼主howtofindyou()2005-08-03 23:48:50 在 MS-SQL Server / 基础类 提问

现在有一个表,如下:  
   
  name   phone  
  aa       123  
  bb       234  
  cc       345  
  dd  
   
  我想在phone的345之前插入789,变成如下:  
   
  name   phone  
  aa       123  
  bb       234  
  cc       789  
  dd       345  
   
  请问怎样实现?  
  问题点数:30、回复次数:10Top

1 楼vivianfdlpw()回复于 2005-08-03 23:53:50 得分 3

update   表   set   phone=789   where   phone=345  
  update   表   set   phone=345   where   name='dd'Top

2 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:32:23 得分 6

如果数据为  
  aa       123  
  bb       234  
  cc       345  
  dd       890  
  ee       909  
  ff        
  要把dd开始后面的都下拉的话  
  update   a   set   a.phone=b.phone  
  from   t1   a,t1   b  
  where   a.name>'dd'   and   ascii(left(a.name,1))-ascii(left(b.name,1))=1  
   
  update   t1   set   phone=345   where   name='dd'Top

3 楼howtofindyou()回复于 2005-08-04 00:33:47 得分 0

谢谢大侠,但name哪一列是动态的,所以更新phone那一列的时候,dd的位置已经变化了,请问怎么办呢?Top

4 楼howtofindyou()回复于 2005-08-04 00:42:00 得分 0

phone   的数据和name的数据是没有关系的,大家都可以动态增加的Top

5 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:49:59 得分 4

select   identity(int,1,1)   as   id,name,phone   into   #1   from   t1  
  先生成一个序号.  
   
  update   a   set   a.phone=b.phone  
  from   t1   a,#1   b,#1   c  
  where     b.id>4   and   b.id-c.id=1  
  and   a.主健=b.主健  
   
  update   t1   set   phone=345   where   name='dd'  
  Top

6 楼howtofindyou()回复于 2005-08-04 01:09:40 得分 0

问题是,这个345不一定要和dd在同一行的,数据是不断增加的,两列都是不同步,动态变化的,大家都没有关系的.Top

7 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 08:49:48 得分 5

那你是根据什么条件去更新数据啊??  
   
  你怎么说的跟随机更新一样??Top

8 楼hglhyy(為人民币服务!)回复于 2005-08-04 08:57:38 得分 5

楼主还是把你的实际问题和实际数据帖出来!这样好分析问题!  
   
  楼主的意思是动态的,那name   列是怎么组成的,有没有规律,还有photo   是有序的吗?可数据库的记录是无序的!也就是你插入的每一条记录,不一定是在表的最后一条!Top

9 楼howtofindyou()回复于 2005-08-04 09:19:22 得分 0

就好象是两个泡泡,大家放在一起,但在最后一个数据,它要永远都是最后的,其它增加的只能在它的上面.这个就是我要达到的效果,谢谢大家!Top

10 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 10:40:35 得分 7

select   identity(int,1,1)   as   id,name,phone   into   #1   from   t1  
  先生成一个序号.  
   
  update   a   set   a.phone=b.phone  
  from   t1   a,#1   b,#1   c  
  where     b.id-c.id=1  
  and   a.主健=b.主健   and   b.id=你要开始的行的id(从这一行开始其他的都向下移动。不知道我理解错了没有,最好有详细一点的数据看一下。)  
   
  update   a   from   t1   a,#1   b   set   a.phone=345   where   a.主建=b.主建   and   b.id=你要开始的行的id-1Top

相关问题

  • insert 简单问题?
  • insert into的问题,看是简单,但却不简单。。。
  • 高分求助简单的insert语句
  • 一个关于insert的简单问题
  • INSERT语句的简单问题!
  • 我是新手,求简单insert语句!
  • 一个简单得insert into 问题,望各位指点!
  • insert的问题!!很简单,刚刚学,大家帮一下
  • 简单的insert语句,请高手指点一下,谢谢!
  • 在线等待,关于insert into的简单问题

关键词

  • 数据
  • phone
  • phonefrom
  • dd
  • 主健
  • 动态
  • 更新
  • 问题
  • update
  • bb234cc

得分解答快速导航

  • 帖主:howtofindyou
  • vivianfdlpw
  • tangqijun199
  • tangqijun199
  • tangqijun199
  • hglhyy
  • tangqijun199

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo