![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQLServer
文章平均质量分 73
DataBox-MDX
专注多维数据库OLAP应用研发(SSAS,Kylin),
展开
-
SQL中XML的操作
--=======--XML--=======--1.modify()DECLARE@xXMLSELECT@x=''DECLARE@SEXNVARCHAR(10)SELECT@SEX='男'SET@x.modify(' replace value of (/People/@SEX)[1] with sql:variable("@SEX")')SELECT@x/*output:*/--2.delete()DECLARE@xXMLSELECT@x=''SET@x.modify(' delet转载 2010-12-09 11:09:00 · 1211 阅读 · 0 评论 -
浅析SQL Server 2008企业级新特性
<br />SQL Server 2008已经发布,我们可以看到它在各方面都有了显著的进步,这些让人侧目之处和失望之处都有可能极大地影响大型企业的采购意向。<br />微软SQL Server 2008的开发代号是Katmai,这个名字来源于阿拉斯加半岛东端阿拉斯加州北部阿留申山区的一座活火山,对数据库而言,可能并不是个最好的比喻(嘿嘿,目前为止,Katmai火山还没有在我头上爆发过)。低调的Katmai看起来似乎是Yukon的一个好的接班人,而Yukon是SQL Server 2005的开发代号。<br转载 2011-01-07 11:08:00 · 993 阅读 · 0 评论 -
SQL2008中的MERGE使用心得
OK,就像标题呈现的一样,SQL Server 2008中的MERGE语句能做很多事情,它的功能是根据源表对目标表执行插入、更新或删除操作。最典型的应用就是进行两个表的同步。下面通过一个简单示例来演示MERGE语句的使用方法,假设数据库中有两个表Product及ProductNew,我们的任务是将Product的数据同步到ProductNew(当然同步可能是每天通过Job来自动完成的,在此我们只关注MERGE的使用)。以下SQL创建示例表:--源表 CREATE TABLE Product ( Pr原创 2010-11-11 21:26:00 · 4633 阅读 · 0 评论 -
SQL Server 优化存储过程的七种方法
<br />优化存储过程有很多种方法,下面介绍最常用的7种。<br />1.使用SET NOCOUNT ON选项<br />我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。<br />2.使用确定的Schema<br />在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索。而且搜索会导致编译锁定,最终影响性能。比如sel转载 2010-11-13 09:35:00 · 940 阅读 · 0 评论 -
SQL2008 EXEC sp_executesql使用例子
<br />MSDN:<br />exec sp_executesql的主体部分:包含 Transact-SQL 语句或批处理的 Unicode 字符串。statement 必须是 Unicode 常量或 Unicode 变量。不允许使用更复杂的 Unicode 表达式(例如使用 + 运算符连接两个字符串)。不允许使用字符常量。如果指定了 Unicode 常量,则必须使用 N 作为前缀。例如,Unicode 常量 N'sp_who' 是有效的,但是字符常量 'sp_who' 则无效。字符串的大小仅受可用数据原创 2010-11-15 20:59:00 · 5233 阅读 · 0 评论 -
SQL求中值
<br />这里说的中值指的是中位数,比如一列数1,2,3,4,5,6,7的中位数是4,如果个数为奇数则为中间一位,如果为偶数则为中间两位的平均数.<br />use City;goSET NOCOUNT ONif OBJECT_ID(N'A',N'U') is not null drop table Agocreate table A( dt datetime not null, a1 int not null, a2 int not null, a3 in原创 2010-11-16 22:08:00 · 2376 阅读 · 0 评论 -
SQL结果集转换--附行转列2
<br />/* <br />问题:假设有张学生成绩表(score)如下: <br />sname subject scores <br />王刚 语文 75 <br />王刚 数学 83 <br />王刚 英语 93 <br />李军 语文 74 <br />李军 数学 84 <br />李军 英语 94 <br />想变成(得到如下结果): <br />sname 语文 数学 英语 <br />---- ---- ---- ---- <br />李军 74 84 94转载 2010-11-19 20:18:00 · 1831 阅读 · 0 评论 -
SQL结果集转换--附多行转为一列
如下图将结果集1(图1)转换为结果集2(图2)ID name value----------- -------------------- ----------1 张三 aaa2 张三 ssss3 张三 ddd4 张三 fff5原创 2010-11-18 21:14:00 · 7369 阅读 · 0 评论 -
SQL Server FOR XML PATH 语句的应用---列转行
经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法。在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert into @TempTable (UserID,UserName) values (1,'a')insert into @TempTable (UserID,UserNa转载 2010-11-18 17:26:00 · 5087 阅读 · 0 评论 -
sql 跨数据库访问
一、跨数据库访问第一种方式SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名 WHERE 条件第二种方式在s转载 2011-08-23 10:58:53 · 3806 阅读 · 0 评论 -
SQL Server 2008几项新特性概述
<br /> <br />文章转载自:CNET<br />计划于2008年第一季度发布的SQL Server 2008不仅对原有性能进行了改进,还添加了许多新特性,比如新添了数据集成功能,改进了分析服务,报告服务,以及Office集成等等。<br />SQL Server集成服务<br />SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL 2000的DTS。整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件、工转载 2011-01-07 11:06:00 · 776 阅读 · 0 评论 -
SQLServer : EXEC和sp_executesql的区别
1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.转载 2010-11-11 19:14:00 · 841 阅读 · 0 评论 -
关于SQL的执行计划
<br />刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太可能有时间去学习其实必须掌握的知识。也许这是因为IT行业竞争太激烈的缘故。 <br />随着时间的流转载 2010-12-12 21:34:00 · 646 阅读 · 0 评论 -
SQL Case具有两种格式。简单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搜索函数相比,功能方面会有些限制,比如写判断式。 还有一个需要注意的问题,Case函数只返回第一个转载 2010-10-25 12:59:00 · 918 阅读 · 0 评论 -
用SQL实现结果集的各种转换----将结果集反向转置为一列
之前的四篇关于用SQL将结果集进行转换的知识点,个人感觉可能就是想行转为列时有点伤脑筋,但是找到方法后也还是可以解决的,其中有一点,对于每组中的第N行假设要一起排在结果集中的同一行,那么,那么就设法让每组中的第N行的某个列(假设为RN)的值为相同,其中用窗口函数Row_Number()方法可以实现,这样只要按照RN分组外加聚合函数(如Max)即可实现,然后在Case中判断RN列的值。原创 2010-10-31 22:09:00 · 6750 阅读 · 2 评论 -
用SQL实现结果集的各种转换----结果集转成一列
最近看了一本关于SQL的书,书名为>,看完后感觉受益很大,先将一些自我感觉用处比较大的知识点介绍如下。也给自己做点笔记。 一、简单的行转列,数据库中有如下图1所示表CityTable图1 现在要将如图2所示的数据格式转换为如图3所示的数据格式 图2原创 2010-10-29 14:01:00 · 2207 阅读 · 0 评论 -
用SQL实现结果集的各种转换----结果集转成多列
之前一篇讲了将结果集转成一列的方式,下面介绍将一个结果集转为多列。 假设原数据表如图1所示,现在要将如图2显示的数据格式转换为如图3所示的数据格式。 图1 图2 图3 由图1得到图2的SQL语句为select P原创 2010-10-29 16:45:00 · 5496 阅读 · 0 评论 -
SQL SERVER 2005感受功能:PIVOT
工具的升级,我以为得先看看这个工具在哪些功能上得到加强,今天我们就看看SQL2005这个PIVOT吧。PIVOT 关系运算符对表值表达式进行操作以获得另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合。记得我们在SQL2000中要用聚合和CASE语句完成一个行列转换吧,特别当待转成列的数据不定时,我们往往构造动态SQL,然后用EXEC来运行。 环境准备: 1.-------------------------------转载 2010-12-23 20:33:00 · 841 阅读 · 0 评论 -
用SQL实现结果集的各种转换----附窗口函数
首先介绍下什么是窗口函数 窗口函数和聚集函数一样都是对定义的行集(组)进行聚集,但是不像聚集一样只返回一个值,窗口函数可以为每个组返回多个值,执行聚集的行组是窗口(因此称为‘窗口函数’)。窗口函数是在聚集函数的基础上加了一个 over(),所有的聚集函数都可以利用这种方式转换成窗口函数。上面的文字貌似有点抽象,举个例子说明 图1 图2 图3 图1表示是原数据表的数据原创 2010-10-31 14:34:00 · 2322 阅读 · 1 评论 -
关于SQL字符串处理的一些函数
1:replace 函数第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么select replace('lihan','a','b')-----------------------------lihbn(所影响的行数为 1 行)=========================================================2:substring函数第一个参数你的字符串,第二个是开始替换位置,第三个结束替换位置select substring('lihan',0,3转载 2010-11-07 10:06:00 · 809 阅读 · 0 评论 -
SQL Server 2005中的CTE递归查询得到一棵树
今天基本搞清楚SQL Server中递归查询的实现方式,So,先记录下来。不过呢,个人觉得SQL Server的递归查询相对于Oracle中的递归查询更加难以理解。 从SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,这对查询树形或层次结构的数据很有用。CTE即公用表表达式,虽然不恰当,但你可以将它看做成一个临时命名的结果集合。 我们先建立一个示例表,名称为MENU,表示菜单的层次结构:显示行号复制代码?SQL CREATE TABLE MENU (name nvarchar(50原创 2010-11-09 20:29:00 · 15623 阅读 · 8 评论 -
MDX语法自动提示工具
MDX自动提示原创 2017-09-16 22:12:25 · 848 阅读 · 0 评论