﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-STEVEN5103</title><link>http://www.cnitblog.com/STEVEN5103/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 05 May 2026 04:50:41 GMT</lastBuildDate><pubDate>Tue, 05 May 2026 04:50:41 GMT</pubDate><ttl>60</ttl><item><title>删除重复数据的几个方法(sql server)</title><link>http://www.cnitblog.com/STEVEN5103/archive/2006/01/07/6062.html</link><dc:creator>Steven Yi</dc:creator><author>Steven Yi</author><pubDate>Fri, 06 Jan 2006 16:13:00 GMT</pubDate><guid>http://www.cnitblog.com/STEVEN5103/archive/2006/01/07/6062.html</guid><wfw:comment>http://www.cnitblog.com/STEVEN5103/comments/6062.html</wfw:comment><comments>http://www.cnitblog.com/STEVEN5103/archive/2006/01/07/6062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/STEVEN5103/comments/commentRss/6062.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/STEVEN5103/services/trackbacks/6062.html</trackback:ping><description><![CDATA[<P>1.找出重复数据<BR>SELECT * from a0000<BR>where 姓名 in (select 姓名 from a0000 group by 姓名 having count(*)&gt;1)</P>
<P>2.删除重复数据<BR>方法一</P>
<P>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>select distinct * from tableName 就可以得到无重复记录的结果集。</P>
<P>　　如果该表需要删除重复的记录（重复记录保留1条），可以:</P>
<P>select distinct * into #Tmp from tableName<BR>drop table tableName<BR>select * into tableName from #Tmp<BR>drop table #Tmp </P>
<P>　　发生这种重复的原因是表设计不周产生的，增加唯一索引列即可解决。</P>
<P>　　2、这类重复问题通常要求保留重复记录中的第一条记录，操作方法如下</P>
<P>　　假设有重复的字段为Name,Address，要求得到这两个字段唯一的结果集</P>
<P>select identity(int,1,1) as autoID, * into #Tmp from tableName<BR>select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID<BR>select * from #Tmp where autoID in(select autoID from #tmp2) </P>
<P>　　最后一个select即得到了Name，Address不重复的结果集（但多了一个autoID字段，实际写时可以写在select子句中省去此列）</P><img src ="http://www.cnitblog.com/STEVEN5103/aggbug/6062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/STEVEN5103/" target="_blank">Steven Yi</a> 2006-01-07 00:13 <a href="http://www.cnitblog.com/STEVEN5103/archive/2006/01/07/6062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eHR常用SQL语句</title><link>http://www.cnitblog.com/STEVEN5103/archive/2005/12/28/5864.html</link><dc:creator>Steven Yi</dc:creator><author>Steven Yi</author><pubDate>Wed, 28 Dec 2005 14:54:00 GMT</pubDate><guid>http://www.cnitblog.com/STEVEN5103/archive/2005/12/28/5864.html</guid><wfw:comment>http://www.cnitblog.com/STEVEN5103/comments/5864.html</wfw:comment><comments>http://www.cnitblog.com/STEVEN5103/archive/2005/12/28/5864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/STEVEN5103/comments/commentRss/5864.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/STEVEN5103/services/trackbacks/5864.html</trackback:ping><description><![CDATA[
		<p>1.判断重名<br />select a00101,count(a00101) from a001 where a00180='11' group by a00101 having count(a00101)&gt;1<br /><br />2.判断身份证重号<br />select a00177,count(a00177) from a001 where a00180='01' group by a00177 having count(a00177)&gt;1<br /><br />3.判断子集主建重复记录<br />select a00100 ,id,count(*) from a082a004 group by a00100,id having count(*)&gt;1<br /><br />4.条件查询<br />select a0101,c0111 from a001a002 where c0111 in (select c0111 from a001a001)<br /><br />5.插入选定的数据<br />insert into a022(a02200,a02299,zorder,status,id ,a02205,a02210)<br />select a00100 as a02200,a00100+'@'+cast(id as varchar(3)) as a02299,100 as zorder, status,id,a2205 as a02205,a2210 as a02210 from gpms..a022a004<br /><br />6./*设置报表权限时的模块列表*/<br />Select * from sm_BusiRoles</p>
		<p>7./*系统建模时子集中指标的排列顺序*/<br />select * from sm_builtitem  where setid='a001'  order by ordersame</p>
		<p>8./*报表中进行条件设置时某子集指标列表*/<br />select * from sm_builtItem where SetId='A001'</p>
		<p>9.进入薪资发放时点发放出来的人员名单:<br />SELECT A05900,A059.id,A059.zorder,E00122,A00101,A00182,A059.A05901,A059.A05902,A059.A05903,A059.A05904,A059.A05905,A059.A05906,A059.A05907,A059.A05908,A059.A05909,A059.A05910,A059.C05901,A059.C05902,A059.C05903,A059.C05904,A059.C05905,A059.E05902,A059.G05901,A059.G05902,A059.G05903,A059.G05904,A059.G05905,A059.G05906,A059.G05907,A059.G05908,A059.G05909,A059.G05910,A059.G05911,A059.G05912,A059.G05913,A059.G05914,A059.G05915,A059.G05916,A059.G05917,A059.G05918,A059.G05919,A059.G05920,A059.G05921,A059.G05922,A059.G05923,A059.G05924,A059.G05925,A059.G05926,A059.G05927,A059.G05928,A059.G05929,A059.G05930,A059.G05931,A059.G05932,A059.G05933, a001.b00100,A05999, substring(A059.status,1,1) as Status  <br />FROM A059,A001,B001 <br />WHERE  b001.b00100=a001.b00100 and A059.A05900=A001.A00199 AND A059.A05900 in (select A00100 from vw_xz_personrelate where payclassid=52 and paySetid=78 And E00122 like '%%' and  E00122 in (select depbm from [Vdeppri000763] where havepri&lt;&gt;'0' and modelid='HR_XZFL') and ( stopflag='00' or stopflag='01')) and A059.status like '1%'   Order by  A001.B00100,A001.E00122,A001.zorder,A059.zorder,A05904 <br />解释：where条件中主要有1)帐套已关联该人员编码;2)人员薪资没有停发标志;3.检查A059.status标志;<br /><br />10.对某一列自动生成递增的号码<br />use ehrdemo<br />create table test(userid int)<br />declare @i int<br />set @i=1<br />while @i&lt;30<br />begin<br /> insert into test (userid) values(@i)<br /> set @i=@i+1<br />end<br />11.怎么判断出一个表的哪些字段不允许为空？ <br /><br />select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO' and TABLE_NAME=tablename<br /><br />12.如何取得一个数据表的所有列名 <br /><br />方法如下：先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。 <br />a.SQL语句如下： <br />declare @objid int,@objname char(40) <br />set @objname = 'tablename' <br />select @objid = id from sysobjects where id = object_id(@objname) <br />select 'Column_name' = name from syscolumns where id = @objid order by colid<br /><br />b.SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='&lt;TABLE&gt;'<br /><br />13.如何在数据库里找到含有相同字段的表？ <br />a. 查已知列名的情况 <br />SELECT b.name as TableName,a.name as columnname <br />From syscolumns a INNER JOIN sysobjects b <br />ON a.id=b.id <br />AND b.type='U' <br />AND a.name='你的字段名字' <br /><br />b. 未知列名查所有在不同表出现过的列名 <br />Select o.name As tablename,s1.name As columnname <br />From syscolumns s1, sysobjects o <br />Where s1.id = o.id <br />And o.type = 'U' <br />And Exists ( <br />Select 1 From syscolumns s2 <br />Where s1.name = s2.name <br />And s1.id &lt;&gt; s2.id <br />) <br />14.SQL Server日期计算 <br />a. 一个月的第一天 <br />SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) <br />b. 本周的星期一 <br />SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) <br />c. 一年的第一天 <br />SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) <br />d. 季度的第一天 <br />SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) <br />e. 上个月的最后一天 <br />SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) <br />f. 去年的最后一天 <br />SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) <br />g. 本月的最后一天 <br />SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) <br />h. 本月的第一个星期一 <br />select DATEADD(wk, DATEDIFF(wk,0, <br />dateadd(dd,6-datepart(day,getdate()),getdate()) <br />), 0) <br />i. 本年的最后一天 <br />SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。<br /><br />15.</p>
<img src ="http://www.cnitblog.com/STEVEN5103/aggbug/5864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/STEVEN5103/" target="_blank">Steven Yi</a> 2005-12-28 22:54 <a href="http://www.cnitblog.com/STEVEN5103/archive/2005/12/28/5864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#简介</title><link>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5812.html</link><dc:creator>Steven Yi</dc:creator><author>Steven Yi</author><pubDate>Mon, 26 Dec 2005 15:08:00 GMT</pubDate><guid>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5812.html</guid><wfw:comment>http://www.cnitblog.com/STEVEN5103/comments/5812.html</wfw:comment><comments>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/STEVEN5103/comments/commentRss/5812.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/STEVEN5103/services/trackbacks/5812.html</trackback:ping><description><![CDATA[<P>1.C和C++已成为在软件开发中使用最广泛的语言:操作灵活，也牺牲了一定的效率<BR>2.问题：在快速开发的同时又可以调用底层平台的所有功能<BR>C# (C sharp) 是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序，Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。<BR>3.使用C#语言结构，组件可以方便转化为XML 网络服务，从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。 <BR>4.效率与安全性:用更少的代码做更多的事，同时也不易出错。<BR>5.<STRONG>商业过程和软件实现的更好对应<BR></STRONG>&nbsp;企业的商业计划要付诸现实，必须在抽象的商业过程和实际的软件实现之间建立紧密地对应。<BR>C#语言允许类型定义的，扩展的元数据。这些元数据可以应用于任何对象。项目构建者可以定义领域特有的属性并把他们应用于任何语言元素-类，接口等等。</P>
<P><STRONG>结论 <BR><BR></STRONG>　　 C#是一种现代的面向对象语言。它使程序员快速便捷地创建基于Microsoft .NET平台的解决方案。这种框架使C#组件可以方便地转化为XML网络服务，从而使任何平台的应用程序都可以通过Internet调用它。 <BR><BR>　　 C#增强了开发者的效率，同时也致力于消除编程中可能导致严重结果的错误。C#使C/C++程序员可以快速进行网络开发，同时也保持了开发者所需要的强大性和灵活性。<BR><BR><BR></P><img src ="http://www.cnitblog.com/STEVEN5103/aggbug/5812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/STEVEN5103/" target="_blank">Steven Yi</a> 2005-12-26 23:08 <a href="http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装不上Windows server 2003 sp1 怎么办？</title><link>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5809.html</link><dc:creator>Steven Yi</dc:creator><author>Steven Yi</author><pubDate>Mon, 26 Dec 2005 14:06:00 GMT</pubDate><guid>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5809.html</guid><wfw:comment>http://www.cnitblog.com/STEVEN5103/comments/5809.html</wfw:comment><comments>http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/STEVEN5103/comments/commentRss/5809.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/STEVEN5103/services/trackbacks/5809.html</trackback:ping><description><![CDATA[<P>最近给D版的Win2003安装sp1才发现安装不上,所有找了下资料，发现注册表中导入下列内容就可以安装了!Windows 2003 Enterprise Edition和Web Editon 都可以，其它版本没有试过!<BR>Windows Registry Editor Version 5.00</P>
<P>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]<BR>"ProductId"="69713-640-9722366-45198"</P>
<P>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]<BR>"CurrentBuild"="1.511.1 () (Obsolete data - do not use)"<BR>"InstallDate"=dword:3f6c976d<BR>"ProductName"="Microsoft Windows Server 2003"<BR>"RegDone"=""<BR>"SoftwareType"="SYSTEM"<BR>"CurrentVersion"="5.2"<BR>"CurrentBuildNumber"="3790"<BR>"BuildLab"="3790.srv03_rtm.030324-2048"<BR>"CurrentType"="Uniprocessor Free"<BR>"ProductId"="69713-640-9722366-45198"<BR>"DigitalProductId"=hex:a4,00,00,00,03,00,00,00,36,39,37,31,33,2d,36,34,30,2d,\<BR>39,37,32,32,33,36,36,2d,34,35,31,39,38,00,5a,00,00,00,41,32,32,2d,30,30,30,\<BR>30,31,00,00,00,00,00,00,00,00,e5,3f,e9,6a,2c,ed,25,35,12,ec,11,c9,8d,01,00,\<BR>00,00,00,00,37,03,6d,3f,44,22,06,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\<BR>00,00,00,00,00,00,00,00,00,00,00,31,32,32,32,30,00,00,00,00,00,00,00,dc,0f,\<BR>00,00,bf,4a,94,6c,80,00,00,00,15,18,00,00,00,00,00,00,00,00,00,00,00,00,00,\<BR>00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,79,ca,d7<BR>"LicenseInfo"=hex:71,84,c7,56,a0,d6,10,6e,70,b4,9f,e9,10,1a,1e,7a,01,a4,41,09,\<BR>25,20,0e,80,83,80,1f,31,27,86,64,1f,31,dc,22,af,f7,7d,aa,e4,2a,b9,e5,e3,6c,\<BR>e2,01,69,85,70,91,be,a7,9f,95,e5<BR><BR>安装之前导入就好了!</P><img src ="http://www.cnitblog.com/STEVEN5103/aggbug/5809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/STEVEN5103/" target="_blank">Steven Yi</a> 2005-12-26 22:06 <a href="http://www.cnitblog.com/STEVEN5103/archive/2005/12/26/5809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>