Fork me on GitHub
听雨轩
生命易破碎,梦想只争朝夕!

随笔分类 -  Sql server数据库

始终相信数据库是最重要的
SQL SERVER中collate的含义
摘要:我们在create table时经常会碰到这样的语句,例如:password nvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。语法是collate collation_namecollation_name ::={windows_collation_name}|{sql_collation_name}参数collate_name是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 阅读全文
posted @ 2011-01-02 15:52 流水殇 阅读(3920) 评论(2) 推荐(2)
sql server 中拥有相同字段值的记录某个字段合并问题解答
摘要:一、问题有表如下:如何获得如下结果:二、解法一使用xml转换代码如下:解法二使用游标,这里我定义了一个函数,你也可以改成存储过程之类的三、说明这里合并的字段都是字符串,下一次我会讨论如何对整形数字求和。 阅读全文
posted @ 2010-12-23 14:32 流水殇 阅读(5339) 评论(1) 推荐(2)
SQL SERVER 2005 进行XML查询
摘要:原文连接:http://www.cnblogs.com/garyyang/archive/2009/08/30/1556640.html1.CREATE TABLE Team ( TeamID int identity not null,TeamDoc xml DEFAULT '<Team />' NOT NULL)query方法  注意:你可以在表和视图列、T-SQL语句或存储过程的参数中使用XML。  这个方法允许你指定一个要计算的Xquery或XPath表达式,该方法的结果是一个XML数据类型对象。它的具体语法形式如下: query(XQuery)  第一个参数总是一个Xquery表达式 阅读全文
posted @ 2010-12-16 12:55 流水殇 阅读(477) 评论(0) 推荐(1)
sql server 2005 XML查询例子
摘要:原文出处:http://www.cnblogs.com/kean/archive/2010/09/21/1832557.htmlSQL Server 2005 新增的一个特性是对 XML 的支持的增强,好多文章都在鼓吹 XML 是如何如何的有用,但惭愧的是我学习了好几年的数据库,很少在实际应用中触碰过 XML,因为用户很少有这方面的需求。最近用户给了一段类似下面结构的 XML。 declare @xdoc xml set @xdoc = 'conn mysql servername="192.168.1.120,3306" user name="root" password="" / 阅读全文
posted @ 2010-12-16 12:12 流水殇 阅读(510) 评论(0) 推荐(0)
DBNull与null的区别
摘要:原文连接:http://www.cnblogs.com/lastbeachhead/archive/2009/04/01/1427484.html以前没有仔细去区分这两个东东,结果好几次都吃了亏,这次搞清楚了,总结如下:Null是.net中无效的对象引用。DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(NULL)时,在.net中的值。null表示一个对象的指向无效,即该对象为空对象。DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象。 DBNull在DotNet是单独的一个类型 Syste 阅读全文
posted @ 2010-12-13 16:27 流水殇 阅读(609) 评论(1) 推荐(0)
CROSS APPLY和 OUTER APPLY 区别详解
摘要:原文出处:http://wangyunlei.javaeye.com/blog/613043SQL Server 2005 新增 cross apply 和 outer apply 联接语句,增加这两个东东有啥作用呢? 我们知道有个 SQL Server 2000 中有个 cross join 是用于交叉联接的。实际上增加 cross apply 和 outer apply 是用于交叉联接表值函数(返回表结果集的函数)的, 更重要的是这个函数的参数是另一个表中的字段。这个解释可能有些含混不请,请看下面的例子: -- 1. cross join 联接两个表select * from TABLE_ 阅读全文
posted @ 2010-12-12 19:58 流水殇 阅读(400) 评论(0) 推荐(0)
SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)-转载
摘要:文章来自:http://sufei.cnblogs.com/很多人对Xpath可能比较熟悉,但不知道有没有直接操作过数据库,我们都知道 在Sql2005里公支持的几种查询有Raw,Auto模式,页并没有Path和Elements用法等,如果在2000里使用过 Raw模式的朋友应该知道,是不容易处理查询结果的,那么在2005里对这一块做了很好的提升 我先来介绍一下什么是Sql For Xml吧,我们大多时候都会有这种情况,想把表里的数据转化成Xml格式的,通常我们会使用c#或是Vb程序来转公,使用Xpath或是XmlDocument等对象来完成,当然这样是可以的,不过这样处理起来就会出现很多问 阅读全文
posted @ 2010-12-12 16:02 流水殇 阅读(297) 评论(0) 推荐(0)
SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)
摘要:文章来自:http://sufei.cnblogs.com/很多人对Xpath可能比较熟悉,但不知道有没有直接操作过数据库,我们都知道 在Sql2005里公支持的几种查询有Raw,Auto模式,页并没有Path和Elements用法等,如果在2000里使用过 Raw模式的朋友应该知道,是不容易处理查询结果的,那么在2005里对这一块做了很好的提升 我先来介绍一下什么是Sql For Xml吧,我们大多时候都会有这种情况,想把表里的数据转化成Xml格式的,通常我们会使用c#或是Vb程序来转公,使用Xpath或是XmlDocument等对象来完成,当然这样是可以的,不过这样处理起来就会出现很多问 阅读全文
posted @ 2010-12-12 16:01 流水殇 阅读(293) 评论(0) 推荐(0)
一个SQL语句实例
摘要:一、问题有以下两张表A和B如何生成一下结果?二、解答编写如下SQL语句:代码三、求解请教各位大牛更加简便的解法^v^ 阅读全文
posted @ 2010-12-11 20:42 流水殇 阅读(284) 评论(0) 推荐(0)
Sql Server2005 Transact-SQL 新兵器学习总结之-APPLY 运算符
摘要:原文出处:http://www.cnblogs.com/aierong/archive/2008/08/13/1266937.htmlAPPLY 运算符简介: APPLY 运算符是Sql Server2005新增加的运算符。使用APPLY运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPLY 运算符的左操作数和右操作数都是表表达式。这些操作数之间的主要区别是:右操作数可以使用表值 阅读全文
posted @ 2010-12-10 13:46 流水殇 阅读(442) 评论(0) 推荐(0)
SQL Server2005中四种排名函数的使用
摘要:排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数:  1.row_number   2.rank   3.dense_rank   4.ntile下面依次介绍这四个排名函数的使用。这里我使用的是微软提供的实例数据库AdventureWorks。一、 row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示:  selectrow_number()over(orderbyfield1)asrow_number,*fromt_table 阅读全文
posted @ 2010-12-10 11:39 流水殇 阅读(1374) 评论(1) 推荐(0)
sql server中cube运算符的使用
摘要:一、介绍Cube运算符的作用是自动对group by子句中列出的字段进行分组汇总运算。Cube运算符生成的结果集是多维数据集。多维数据集是事实数据的扩展,事实数据即记录个别事件的数据。扩展建立在用户打算分析的列上,这些列称为维。多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格。Cube运算符在SQL语句的Group by子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。Group by应指定维度列和关键字 with cube。结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。例如,一个简单的存货信息表中包含如下内容:项目颜色质量Tab 阅读全文
posted @ 2010-12-08 13:39 流水殇 阅读(1759) 评论(0) 推荐(0)
SQLServer Case具有两种格式:简单Case函数和Case搜索函数
摘要:原文出处:http://blog.csdn.net/IBM_hoojo/archive/2010/04/30/5546868.aspxCase具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'ELSE '其他' END这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写 阅读全文
posted @ 2010-12-05 13:52 流水殇 阅读(3957) 评论(0) 推荐(0)
Sql server 2005中output用法解析
摘要:一、关于output子句SQL Server 2005中的output子句,可以使你从修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。带结果的 DML 的有用方案包括清除和存档、消息处理应用程序以及其他方案。这一新的 OUTPUT 子句的语法为: OUTPUT INTO @table_variable 可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的表。在 UPDATE 语句中,可以访问插入的表和删除的表。二、实例说明1、将 OUTPUT INTO 阅读全文
posted @ 2010-12-04 12:06 流水殇 阅读(10013) 评论(1) 推荐(1)
sql server compute by 子句用法实例
摘要:一、相关概念 如果在对数据进行统计分析时,既需要保存查询结果,又能在查询结果下面将统计结果显示出来,我们可以使用compute by 子句。 Compute子句用于生成合计,并将其作为附加的汇总列出现在结果集的最后,当与by一起使用时,Compute子句在结果集内生成控件中断和分类汇总。可在同一查询内指定Compute by和Compute。其语法格式如下:[Compute{{Avg | count | max | min | stdev | stdevp| var | varp | sum (expression)}[,…n][by expressin [,….]]}]Compute子句中使 阅读全文
posted @ 2010-11-25 14:19 流水殇 阅读(3040) 评论(1) 推荐(0)
sql 中使用Newid()随机返回几条数据
摘要:从A表随机取10条记录,用SELECT TOP 10 * FROMA order by newid() order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的? 其实newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了 或者 select top 10 *,newid() as Random fromA where ywlename='001' ordey by Random 后者效率要高些 因为n 阅读全文
posted @ 2010-11-22 16:17 流水殇 阅读(1591) 评论(0) 推荐(0)
Sql Server2005 Transact-SQL 新兵器学习总结之-DDL触发器
摘要:原文出处:http://www.cnblogs.com/aierong/archive/2008/09/02/1281488.html1.简介:Sql Server2005新增加了DDL触发器。与DML触发器不同的是,它们不会为响应针对表或视图的UPDATE、INSERT或DELETE语句而激发。相反,它们将为了响应各种数据定义语言(DDL)事件而激发。这些事件主要与以关键字CREATE、ALTER和DROP开头的Transact-SQL语句对应。执行DDL式操作的系统存储过程也可以激发DDL触发器。2.作用:如果要执行以下操作,可以使用DDL触发器: (1)要防止对数据库架构进行某些更改。( 阅读全文
posted @ 2010-11-20 21:24 流水殇 阅读(478) 评论(1) 推荐(0)