hdflc 发表于 2006-12-8 15:51:32

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

<p>SQL:如何取出表中字段中相同的值(SYBASE)可以的话发上代码</p>
[此贴子已经被作者于2006-12-8 15:54:21编辑过]

ehxz 发表于 2006-12-8 17:39:57

不明白什么意思

flybean 发表于 2006-12-11 08:00:08

不知所云

hdflc 发表于 2006-12-11 10:06:02

<p>比如说(SYBASE)有个test表,有name,xingbie这两个字段。在表中同时存在两条相同的记录,比如zhang,nan。那我没必要同时把这2个记录都放在里面(注:这2个字段并不是唯一键),怎么把相同的其中一条记录给删除掉?</p><p></p>
[此贴子已经被作者于2006-12-11 10:08:12编辑过]

ehxz 发表于 2006-12-11 10:23:08

<p>一般先建一个临时表,把唯一的数据SELECT进去,然后将原来的数据清空,再导回去。</p><p>好象没有很省事的办法,网上有许多类似的讨论的。</p>

cookie 发表于 2007-1-9 14:30:44

<p>用union</p><p>select</p><p>a.name,</p><p>a.xingbie</p><p>from test a</p><p>uion</p><p>select</p><p>a.name,</p><p>a.xingbie</p><p>from test a</p><p></p>

wind_san 发表于 2007-1-16 14:12:25

楼上,不错的方法

hgdcai 发表于 2007-1-29 16:50:03

<p>删除重复数据<br/>方法一</p><p><br/>&nbsp;  declare @max integer,@id integer<br/>  declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) &gt; 1<br/>  open cur_rows<br/>  fetch cur_rows into @id,@max<br/>  while @@fetch_status=0<br/>  begin<br/>  select @max = @max -1<br/>  set rowcount @max<br/>  delete from 表名 where 主字段 = @id<br/>  fetch cur_rows into @id,@max<br/>  end<br/>  close cur_rows<br/>  set rowcount 0</p><p>方法二</p><p>  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。</p><p>  1、对于第一种重复,比较容易解决,使用</p><p><br/>&nbsp;  select distinct * from tableName<br/>&nbsp;</p><p><br/>  就可以得到无重复记录的结果集。</p><p>  如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除</p><p><br/>&nbsp;  select distinct * into #Tmp from tableName<br/>  drop table tableName<br/>  select * into tableName from #Tmp<br/>  drop table #Tmp<br/>&nbsp;</p><p>  发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。</p>
页: [1]
查看完整版本: SQL:如何取出表中字段中相同的值

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

Mail To:Admin@SybaseBbs.com