博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQl2005(以上)

摘要:合并列值 --*******************************************************************************************表结构,数据如下: id value ----- ------1 aa 1 bb 2 aaa 2 bbb 2 ccc需要得到结果: id values------ -----------1 aa,bb 2 aaa,bbb,ccc即:groupby id, 求 value 的和(字符串相加) 1. 旧的解决方法(在sql server 2000中只能用函数解决。) --================= 阅读全文

posted @ 2011-12-05 10:51 itcfj 阅读(188) 评论(0) 推荐(0)

摘要:for xml path语句实现行转列的功能现有2张表,学生表Tb_Student和成绩表Tb_Result,如图:Tb_StudentTb_Result现在想要实现查询出如下的结果:即每个学生的所有成绩放在一列里,这就是典型的行转列的问题。使用sql中的for xml path即可实现,selectStu_id,Stu_name,(selectclass+':'+cast(scoreasvarchar)+','fromTb_ResultwhereStu_id=s.Stu_idforxmlpath(''))asresultfromTb_Stude 阅读全文

posted @ 2011-12-05 10:43 itcfj 阅读(289) 评论(0) 推荐(0)

摘要:SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主.一.FOR XML PATH 简单介绍那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下:SELECT*FROM@hobbyFORXML PATH 结果:<row><hobbyID>1</h 阅读全文

posted @ 2011-12-05 10:42 itcfj 阅读(481) 评论(0) 推荐(0)

摘要:/*数据库中tb表格如下 月份 工资 福利 奖金1月 100 200 3002月 110 210 3103月 120 220 3204月 130 230 330我想得到的结果是项目 1月 2月 3月 4月工资 100 110 120 130福利 200 210 220 230奖金 300 310 320 330就是说完全把表格的行列颠倒,有点像那种旋转矩阵,请问如何用sql 语句实现?*/ifexists (select*from dbo.sysobjec... 阅读全文

posted @ 2011-10-28 09:40 itcfj 阅读(259) 评论(0) 推荐(0)

摘要:一直对时间戳这个概念比较模糊,相信有很多朋友也都会误认为:时间戳是一个时间字段,每次增加数据时,填入当前的时间值。其实这误导了很多朋友。时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属 阅读全文

posted @ 2011-10-27 16:32 itcfj 阅读(2690) 评论(1) 推荐(0)

摘要:SQL Server 性能分析查询表的使用空间和可用空间posted @ 2011-07-06 16:38 zping 阅读(58) | 评论 (0) 编辑查询长事务和SQL执行等待间隔时间posted @ 2011-03-31 15:37 zping 阅读(110) | 评论 (0) 编辑查询SQL Server存储过程的执行信息posted @ 2011-02-24 17:48 zping 阅读(126) | 评论 (0) 编辑SQL Server 查询Job中的存储过程posted @ 2011-01-28 11:20 zping 阅读(153) | 评论 (0) 编辑使用SQL Ser 阅读全文

posted @ 2011-10-02 11:42 itcfj 阅读(211) 评论(0) 推荐(0)

摘要:PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT与PIVOT执行相反的操作,将表值表达式的列转换为列值。通俗简单的说:PIVOT就是行转列,UNPIVOT就是列传行2.例题--建立销售表CREATETABLESell([Year]INT,[Quarter]NVARCHAR(10),QuantityINT)--插入测试数据INSERTINTOSellVALUES(2006,'Q1',20)INSERTINTOSellVALUES(2006,'Q2',15)INSERTINT 阅读全文

posted @ 2011-06-15 13:48 itcfj 阅读(382) 评论(0) 推荐(0)

摘要:在SQL Server中如何与XML交互 XML可以说是数据库表现的一种灵活的形式,在数据库开发过程中,很多时候我们都会需要涉及到XML,特别是用在数据交换。而在SQL Server 2005中,XML已成为一种流行的数据类型,XML已经做为一种新型的类型存储在数据库中。借助于基于XML模式的强类型化支持和基于服务器端的XML数据校验功能,开发者就可以对存储的XML文档进行轻松地远程修改。 在SQL Server 2000中就已经包括了一些XML特征。最常用的是使用FOR XML语句以XML形式返回结果。SQL Server 2005的功能则明显不同。在SQL Server 2005中,XM. 阅读全文

posted @ 2011-06-09 17:38 itcfj 阅读(323) 评论(0) 推荐(0)

摘要:sql2005建webservice及在vs2005中的应用 Sql2005可以将存储过程或T-SQL以web服务的方式发布到服务器上,而无须配置IIS.通过HTTP API 把HTTP端点暴露给用户,在winXP sp2和win2003上被支持.在网上查了下简明用法教程,可网上全部又简单的介绍几乎没有,我在进行测试时遇到如访问端点权限问题,将sql2005创建的web服务引入到项目中等没有详细说明,至使我花了很长时间在MSDN上查文档.为了方便以后想对ENDPOINT进行测试实践的人少走弯路,我写了这篇还算是全面的”sql2005建webservice及在vs2005中的应用”的入门文档.. 阅读全文

posted @ 2011-05-20 23:30 itcfj 阅读(237) 评论(0) 推荐(0)

摘要:SQLServer 2005针对varchar(max),nvarchar(max)及varbinar(max),3种数据类型在update语句上新增了write语 句,功能与以往text和image类型的文本指针功能类似,使用户可以对大型数据进行局部更新,如程序代码:usetemdbgo--nvarchar(max),varchar(max)varbinary(max)新增的write-- 更新方式createtable tbltext(c1 nvarchar(max))insert tabtext values(replicate(N'1234567890',1000))u 阅读全文

posted @ 2011-05-20 22:47 itcfj 阅读(220) 评论(0) 推荐(0)

摘要:SQL Server CLR 极速入门,启用、设计、部署、运行 10分钟内搞定 Posted on 2010-04-26 09:19 yongfa365 阅读(1512) 评论(9) 编辑 收藏 首先总结:SQL Server CLR 设计简单,部署方便,效率很高,很安全,随数据库移动。测试用例,视频演示在此下载:http://download.csdn.net/source/2279319环境:SQL Server 2005/2008,Visual Studio 2005/2008在SQL Server里启用CLR:在SQL Server里执行以下命名,来启用CLRexecsp_confi. 阅读全文

posted @ 2011-05-20 21:33 itcfj 阅读(219) 评论(0) 推荐(0)

摘要:<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>js to excel</title><link href="css/style.css" rel="stylesheet" type="text/css"><style type="text/css">.tit{ font 阅读全文

posted @ 2011-05-11 22:49 itcfj 阅读(1859) 评论(0) 推荐(0)

摘要:在ASP.NET应用程序常常会遇到需要从Excel文件中读取数据或将数据写入Excel的需求。一般来讲,在ASP.NET中读写Excel文件有四种解决方案。1.1.1 使用OLE DB使用OLE DB可以以查询数据库的方式来读取Excel文件,因为在某种程度上Excel表格可以看成是一张一张的数据表。其二者的主要区别在于所使用的数据引擎不一样。使用OLE DB访问Excel的要点是计算机上必须具有Microsoft Access Data Component 2.6(MADC2.6)以上版本,同时在连接字符串上必须声明“Extended Properties=Excel 8.0”,这里的指定. 阅读全文

posted @ 2011-05-10 16:28 itcfj 阅读(1616) 评论(0) 推荐(1)

摘要:SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、使用order by对结果集进行排序。见鬼的是里面没有提到“select”这个关键字。我之前跟同学讨论,认为它应该是在最后执行,,因为觉得应该是等条件都执行完毕了再取数据——但是也没有找到什么确切的证据。今天跟另外一位女同学讨论了这个东西,果然女同志比较细心,她对“select”提了别的意见。于是我也开始动摇了,,因为orderby是 阅读全文

posted @ 2011-05-10 11:00 itcfj 阅读(249) 评论(0) 推荐(0)

摘要:千万数量级分页存储过程[转帖]Create PROCEDURE SP_Pagination/****************************************************************** 千万数量级分页存储过程 *****************************************************************参数说明:1.Tables :表名称,视图2.PrimaryKey :主关键字3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc4.CurrentPage :当前页码 阅读全文

posted @ 2011-04-26 22:07 itcfj 阅读(223) 评论(0) 推荐(0)

摘要:oracle中row_number() OVER (PARTITION BY COL1 ORDER BY COL2) ow_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序). rank() 阅读全文

posted @ 2011-04-20 13:21 itcfj 阅读(1121) 评论(0) 推荐(0)

摘要:这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了?首先我们先来分析3个数据类型的说明:1。charCHAR的长度是固定的,最长2000个字符。2。varchar和varchar2可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。其次也有人认为varchar是最大长度为2000的可变字符串(和sqlserver中的varchar一致),而varchar2最大长度为4000。知道了他们的特点我们就来讨论下使用区别1.char 阅读全文

posted @ 2011-04-20 10:48 itcfj 阅读(249) 评论(0) 推荐(0)

摘要:Sql NOCOUNT 语句默认分类2007-08-24 09:19:57 阅读205 评论0 字号:大中小订阅 每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢?答案是这些信息在我们的客户端的应用程序中是没有用的,这些信息是存储过程中的每个语句的DONE_IN_PROC 信息。我们可以利用SET NOCOUNT 来控制这些信息,以达到提高程序性能的目的。MSDN中帮助如下: SET NOCOUNT 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。语法 阅读全文

posted @ 2011-04-09 21:59 itcfj 阅读(594) 评论(0) 推荐(1)

摘要:sql 代码:set nocount ongoalter procedure pro_insertStu( @stuid varchar(50), @stuname varchar(50))asbegin insert into StuInfo values (@stuid,@stuname); select @@ROWCOUNT select SCOPE_IDENTITY()--输出当前作用域(StuInfo)——个表的id select @@IDENTITY --输出第二(t2)——个表的id select @a=A ,@ from StuInfoend;alter trigger tri 阅读全文

posted @ 2011-04-09 21:50 itcfj 阅读(300) 评论(0) 推荐(0)

摘要:SCOPE_IDENTITY返回插入到同一作用域中的 IDENTITY 列内的最后一个IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。语法SCOPE_IDENTITY( )返回类型sql_variant注释SCOPE_IDENTITY、IDENT_CURRENT和 @@IDENTITY 在功能上相似,因为它们都返回插入到IDENTITY 列中的值。 IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成 阅读全文

posted @ 2011-04-09 21:36 itcfj 阅读(160) 评论(0) 推荐(0)