祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 4249|回复: 7

SQL:如何取出表中字段中相同的值

[复制链接]

SQL:如何取出表中字段中相同的值

[复制链接]
hdflc

主题

0

回帖

2

积分

新手上路

积分
2
贡献
在线时间
小时
2006-12-8 15:51:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×

SQL:如何取出表中字段中相同的值(SYBASE)可以的话发上代码

[此贴子已经被作者于2006-12-8 15:54:21编辑过]
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
ehxz

主题

0

回帖

59万

积分

管理员

积分
591011
贡献
在线时间
小时
2006-12-8 17:39:57 | 显示全部楼层
不明白什么意思
共享共进共赢Sharing And Win-win Results
flybean

主题

0

回帖

595

积分

管理员

积分
595
贡献
在线时间
小时
2006-12-11 08:00:08 | 显示全部楼层
不知所云
共享共进共赢Sharing And Win-win Results
hdflc 楼主

主题

0

回帖

2

积分

新手上路

积分
2
贡献
在线时间
小时
2006-12-11 10:06:02 | 显示全部楼层

比如说(SYBASE)有个test表,有name,xingbie这两个字段。在表中同时存在两条相同的记录,比如zhang,nan。那我没必要同时把这2个记录都放在里面(注:这2个字段并不是唯一键),怎么把相同的其中一条记录给删除掉?

[此贴子已经被作者于2006-12-11 10:08:12编辑过]
共享共进共赢Sharing And Win-win Results
ehxz

主题

0

回帖

59万

积分

管理员

积分
591011
贡献
在线时间
小时
2006-12-11 10:23:08 | 显示全部楼层

一般先建一个临时表,把唯一的数据SELECT进去,然后将原来的数据清空,再导回去。

好象没有很省事的办法,网上有许多类似的讨论的。

共享共进共赢Sharing And Win-win Results
cookie

主题

0

回帖

2

积分

新手上路

积分
2
贡献
在线时间
小时
2007-1-9 14:30:44 | 显示全部楼层

用union

select

a.name,

a.xingbie

from test a

uion

select

a.name,

a.xingbie

from test a

共享共进共赢Sharing And Win-win Results
wind_san

主题

0

回帖

1

积分

新手上路

积分
1
贡献
在线时间
小时
2007-1-16 14:12:25 | 显示全部楼层
楼上,不错的方法
共享共进共赢Sharing And Win-win Results
hgdcai

主题

0

回帖

5

积分

新手上路

积分
5
贡献
在线时间
小时
2007-1-29 16:50:03 | 显示全部楼层

删除重复数据
方法一


   declare @max integer,@id integer
  declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
  open cur_rows
  fetch cur_rows into @id,@max
  while @@fetch_status=0
  begin
  select @max = @max -1
  set rowcount @max
  delete from 表名 where 主字段 = @id
  fetch cur_rows into @id,@max
  end
  close cur_rows
  set rowcount 0

方法二

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

  1、对于第一种重复,比较容易解决,使用


   select distinct * from tableName
 


  就可以得到无重复记录的结果集。

  如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除


   select distinct * into #Tmp from tableName
  drop table tableName
  select * into tableName from #Tmp
  drop table #Tmp
 

  发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-12-23 18:56 , Processed in 0.040930 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表