DB
phoenix_cat
这个作者很懒,什么都没留下…
展开
-
删除数据库中重复记录的SQL语句(转)
参考URL:http://qinya.iteye.com/blog/677306 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢? 思考:如何仅有部分字段重复,如何查找所有记录,重复记录只显示一遍??1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 Java代码 select * from people...原创 2011-09-03 22:28:25 · 146 阅读 · 0 评论 -
JAVA数据连接池
一直以为对数据库连接池感到非常神秘。 今天终于花时间研究了一下。 首先说下数据库连接池的工作原理: 以前程序连接数据库都是建立一条物理连接,用完之后就会关闭。而在有大量连接的时候,这种建立连接和关闭连接会很影响性能。所以像webLogic这种服务器会建立一个资源池(Resource Pool或者Connection Pool),每次有连接过来时,就将资源池中的一个连接分配...原创 2011-09-14 11:17:50 · 73 阅读 · 0 评论 -
诡异SQL研究
SELECT ISNULL(ED.RegNo,'') as RegNo,ISNULL(ED.RefNo,'') as RefNo , ISNULL(ED.RoundNo,'') as RoundNo, ISNULL(S.RefDate_Sett,'') as RefDate_Sett , ISNULL(EH.PayAccount,'') as PayAccount , ISNULL(EH.P...原创 2011-09-15 10:38:56 · 63 阅读 · 0 评论 -
SQL Server和Oracle常用函数对比
http://database.51cto.com/art/200611/35178.htm原创 2011-09-21 12:35:57 · 66 阅读 · 0 评论 -
DB关键字--coalesce,decode
1、DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如...原创 2011-06-29 17:41:37 · 427 阅读 · 0 评论 -
ORACLE行转列
1、下面是一张表 Create table test (name char(10),km char(10),cj int); select * from test insert into test values( '张三 ', '语文 ',80) ;insert into test values( '张三 ', '数学...原创 2011-07-07 17:53:21 · 78 阅读 · 0 评论 -
从头到尾彻底解析Hash表算法
【转自:】http://blog.csdn.net/v_JULY_v/article/details/6256463原创 2011-07-11 16:51:37 · 137 阅读 · 0 评论 -
查看数据库版本
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')正确的版本应该是:8.00.2039 SP4 Enterprise Edition -------------------------------------------------...原创 2011-07-19 16:09:16 · 92 阅读 · 0 评论 -
win7专业版下安装sql2008[原创]
http://www.cnblogs.com/TTTT/archive/2010/06/10/1755973.html原创 2011-07-20 12:39:45 · 100 阅读 · 0 评论 -
SQL2008序列号
我安装的版本是:sqlfull_x86_enu(英文版),如果想装中文的话就是sqlfull_x86_chs。 开发者版:PTTFM-X467G-P7RH2-3Q6CG-4DMYB 企业版:JD8Y6-HQG69-P9H84-XDTPG-34MBB。 ...原创 2011-07-23 00:01:02 · 123 阅读 · 0 评论 -
SQL SERVER中Null和空串区别
一直以来对NULL和空串的区别搞不清楚。 空串的直观感受如下图:(通俗的讲,就是不显示NULL且是一片空白的东东) 而NULL的直观感受如下图: -------------------------------------------------------- 区别一:当你用SQL语句以上面这三个字段查询时,用的WHRE条件不一样。1、查询空串SQL语句:...原创 2011-07-24 11:11:15 · 1160 阅读 · 0 评论 -
乐观锁=时间戳?
乐观锁=时间戳? 待验证。原创 2011-07-25 14:26:55 · 507 阅读 · 0 评论 -
sqlserver2008 jar驱动
JAVA要连接SQL SERVER2008,必须要用JDBC驱动。 要注意的是SQL SERVER2008和SQL SERVER2008 R2不一样。SQLSERVER 2008的可以用2.0,然后SQLSERVER 2008 R2只能用3.0.否则报错呀。 SQL SERVER2008:Microsoft SQL Server JDBC Driver 2.0下载地址: h...原创 2011-10-15 21:53:52 · 505 阅读 · 0 评论 -
用一条语句取出DB最大值的数据
SQL文如下:select * from testMax where score=(select MAX(score) from testMax) 说白了就是用嵌套。原创 2011-07-28 12:03:51 · 173 阅读 · 0 评论 -
多表 INNER JOIN 用法
备忘:SQL多表内连接语法 select * from B_DiscountExecH EHinner join B_DiscountExecD ED on EH.DiscountNo=ED.DiscountNoinner join B_DiscountReg R on R.RegNo=ED.RegNoinner join B_DiscountSett S on S....原创 2011-07-28 12:05:55 · 116 阅读 · 0 评论 -
SQL Server到底需要使用哪些端口
参考URL:http://blog.csdn.net/studyzy/article/details/4909469原创 2011-10-24 16:46:41 · 308 阅读 · 0 评论 -
smallint和tinyint什么区别
最主要的区别就是占用的字节数大小问题。我们知道在JAVA中,int型占用的就是4个字节。同样在数据库中其实也是这样的。int占4个字节,smallint占2个字节,tinyint占1个字节。具体细节如下: bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大...原创 2011-10-26 09:30:08 · 266 阅读 · 0 评论 -
查看sqlserver表结构命令
1、exec sp_columns 表名代码如下:exec sp_columns T_SHEET_ACCEPT_23 注意到:上述报告的结果中,column_name是表示列名的。type_name表示数据类型的。而且此命令不适用于临时表或者通过链接服务器得到的表,换句话,可能只适用于本地数据库。select * from informat...原创 2011-10-26 10:05:53 · 572 阅读 · 0 评论 -
将字符串插入到DOUBLE中
假设表中的BillAmt字段是在DB中是decimal型的。 如果你将一个字符串插入到这个BillAmt字段中,也是没有错的。 前提是这个字符串是可以转换成数字的。 insert into B_AcpnExecBill(RefNo,BookingBranch,RoundNo, BillAmt,DelFlg,UpdUser,UpdDate) values('1001...原创 2011-08-08 15:48:23 · 183 阅读 · 0 评论 -
CHARINDEX用法
select case WHEN CHARINDEX('1425,',inquiry.Q441)>0 and CHARINDEX('1426,',inquiry.Q441)=0 THEN '01' WHEN CHARINDEX('1426,',inquiry.Q441)>0 and CHARINDEX('1425,',inquiry.Q441)=0 THEN '02'...原创 2011-12-12 16:50:13 · 510 阅读 · 0 评论 -
SQL中连接字符串例子
SQL中连接字符串用+号,示例如下:convert(varchar(100),task.LASTCALLDATE,23)+':'+convert(varchar(100),task.LASTCALLDATE,24) as cdate,原创 2011-12-16 18:02:39 · 132 阅读 · 0 评论 -
如何将一个表某个字段更新进另一个表
一开始以为要用游标,但没想到网上有高人指点,代码如下: update yc.dbo.T_CUST_CUSTINFO_12 set yc.dbo.T_CUST_CUSTINFO_12.a611=n.a611,yc.dbo.T_CUST_CUSTINFO_12.a612=n.a612,yc.dbo.T_CUST_CUSTINFO_12.a613=n.a613,yc.dbo.T...原创 2011-12-22 21:11:25 · 133 阅读 · 0 评论 -
sql server 表别名性能低 临时表性能高
看以下例子: select * from ( select * from b left join c on xx=xx left join d on xx=xx left join e on xx=xx)as a where a.xx=xx 由于a是一个很复杂的东西,关键a是别名出来的。那这种写法将会非常耗时。 但是如果将select * from...原创 2011-12-22 21:18:48 · 360 阅读 · 0 评论 -
如何删除完全重复的数据
下面仅讲在ORACLE中的例子:我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。一、对于部分字段重复数据的删除先来谈谈如何查询重复的数据吧。下面语句可以查询出那些数据是重复的:select 字段1,字段2,cou...原创 2011-12-29 18:41:44 · 220 阅读 · 0 评论 -
还原数据库时提示不能独占
在还原数据库经常会看到这句话。原因就是有别的连接还对数据库操作。解决办法如下:(用数据库的联机功能,执行了半天好像没成功,不知道什么原因) ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE 会提示估计数据库回滚到100%。如果回滚成功,此时DB会切换到脱机状态,将其联机后再还原DB即可。 如果...原创 2012-01-04 17:32:48 · 207 阅读 · 0 评论 -
SQL日期比较函数
对于DB中的datetime类型的,我们常常需要转化成日期型,再去做各种比较。 其实我们还可以直接用日期函数进行比较。 select * from T_QUESTIONNAIRE_TASK where datediff(dd,createdate,getdate())=0 这句话就是说离今天0天前的,其实就是指所有日期为今天的数据啦。 ...原创 2012-01-05 10:41:38 · 930 阅读 · 0 评论 -
not exists用法 再举例
这个鸟东西,每次用它都郁闷啊! 举个例子吧,假如有2张表,表结构一样,一张称为tableOld,一张称为tableNew。 其中有个字段ID。 tableOld有1000条数据,而tableNew数据有1050条数据。 其实在新表中的1050条数据包括了旧表的1000条数据,那么现在想把这50条数据找出。 该如何办呢? 错误解法: sele...原创 2012-01-05 17:37:43 · 530 阅读 · 0 评论 -
去重 存储过程
见如下代码:是多表操作的。1、存储过程里可以写临时表的,但这里用的是exec语句创建的临时表。同时存储过程里不能写临时表的表名,因为临时表是动态创建的,当时并不存在,所以存储过程会报错。2、注意到:这里的临时表用完后不用drop,它是自动删除的。3、exec里面好像只能执行一个命令,就比如说你有很多个select,delete啊那就不行了。所以只能一条一条来。4、存储过程里不能有g...原创 2012-01-05 22:57:53 · 397 阅读 · 0 评论 -
exec用法
示例一:直接执行SQL语句串。代码如下: declare @interDay bigint set @interDay=2exec('select distinct * into #tmpActivity from test.dbo.dActivityCodeStat where datediff(dd,timestamp,getdate())='+) 这...原创 2012-01-05 23:06:34 · 112 阅读 · 0 评论 -
关于删除完全重复的记录
在数据库里面,如果对于完全删除重复的记录,个人觉得用distinct和临时表技术比较给力,而且性较高。如果用ROW_NUMBER()函数,不仅思路非常麻烦,而且性能差。 但是在只有部分重复的数据表情况下,想要保留最新的那条数据,可以用ROW_NUMBER()函数,取最大的rowId。 关键语句如下:注意到ROW_NUMBER()一般结合over使用的。 select *...原创 2012-01-05 23:22:18 · 140 阅读 · 0 评论 -
sa登录失败 18456
Case1:密码错误也会报这样的错误。 Case2:用windows身份登录。然后在登录的实例上右击点属性/安全性,选成混合登录即可。 需要重启SQL服务。 refurl:http://topic.csdn.net/t/20060228/20/4584228.html ...原创 2012-04-27 17:22:36 · 88 阅读 · 0 评论 -
sqlserver占用内存越来越大
这个是因为SQL SERVER会不断的增加内存,一直到达到最大内存后才会释放之前占的内存。 方法是在实例上右击,将最大内存调到相应大小就行了。 不要指望AWE,因为这个功能是对32位机器使用大内存用的,而且这个功能在下一代SQL SERVER中将会删除。 refurl:http://technet.microsoft.com/zh-cn/library/ms19...原创 2012-04-27 21:42:50 · 1209 阅读 · 0 评论 -
sql日期格式化
注意:说是日期格式化,其实本质上是将它化成了字符串。Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GET...原创 2011-11-15 15:01:04 · 68 阅读 · 0 评论 -
关于用insert命令插入带自增量的注意事项
1、如果用insert命令插入新数据时,请无视ID(自增量)。也就是说insert into table(field1,field2) values('123','456')。并不关心ID的值。但ID自己会自动更新。 2、如果是在SQL SERVER2008里面,直接从editPlus中复制一行过来时,要将ID考虑进去,但它的值无所谓,但此字段必须要用的。...原创 2011-11-16 12:16:00 · 745 阅读 · 0 评论 -
存储过程if怎么写
IF @@FETCH_STATUS=0 BEGIN ...................................... END ELSE BEGIN ...................................... END 注意:不需要THENrefurl:http://topic.csdn.net/t/20060223...原创 2012-05-26 14:42:02 · 168 阅读 · 0 评论 -
sqlserver2008 jdbc
在微软官网下的sqlserver2008 jdbc 2.0驱动,解压下来是2个包,一个包是sqljdbc.jar,另一个是sqljdbc4.jar。 其实sqljdbc.jar仅支持JDK5.0。 而sqljdbc4.jar仅支持JDK6.0。 切记! 另外:这个和SQL SERVER2008是32位还是64位的没有关系。 refurl:http://www...原创 2012-05-28 16:35:13 · 184 阅读 · 0 评论 -
dts导入excel 步骤
将EXCEL数据导入到数据库有好多种方式,如下: 1、SQL Server 数据传输服务 (DTS)2、Microsoft SQL Server 2005 Integration Services (SSIS)3、SQL Server 链接服务器4、SQL Server 分布式查询5、ActiveX 数据对象 (ADO) 和 Microsoft OLE DB Prov...原创 2012-05-31 16:14:48 · 394 阅读 · 0 评论 -
该帐户当前被锁定,所以用户 'sa' 登录失败。系统管理员无法将该帐户解锁。(Microsoft SQL Server,错误: 18486)...
1、如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定。要用windows方式登录,在查询分析器里输入:ALTER LOGIN sa ENABLE ;GOALTER LOGIN sa WITH PASSWORD = '' unlock, check_policy = off, check_expiration = off ;GO 2、...原创 2011-11-17 12:33:28 · 1213 阅读 · 0 评论 -
特殊SQL共享
一段很特殊的SQL select 'go1234'= case when optionid=1414 then 'gosuccess' end from T_QUESTIONNAIRE_BRANCH_OPTION 一般是select optionid as 'go1234',而这个SQL是把字段名写在前面,后面写字段内容。。奇怪。。一般用在cas...原创 2011-11-17 17:47:13 · 72 阅读 · 0 评论 -
行列转换研究帖
http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html原创 2011-11-24 21:14:32 · 83 阅读 · 0 评论