随笔分类 -  MSSQL 相关特性

摘要:UNPIVOT运算符相对于PIVOT运算符,它执行与PIVOT相反的操作,即将列转换到行。需要注意的是UNPIVOT运算符并不完全是PIVOT的逆向操作。因为执行PIVOT将会执行一次聚合,从而将多个可能的行合并为输出中的单个行。而 UNPIVOT 无法重现原始表值表达式的结果,因为行已经被合并了。另外,UNPIVOT 的输入中的空值不会显示在输出中,而在执行 PIVOT 操作之前,输入中可能有原始的空值。 关于PIVOT运算符的使用,请参考:SQL server 2005 PIVOT运算符的使用。一、UNPIVOT的语法 SELECT [DataType] ,... 阅读全文
posted @ 2010-03-23 10:56 ajuanabc 阅读(230) 评论(0) 推荐(0) 编辑
摘要:最近在工作中碰到一例因排序规则而导致的冲突问题,运行环境是SQL 2008,具体代码如下:DECLARE @URL VARCHAR(500), @startdate DATETIME, @enddate DATETIME, @Identifier VARCHAR(20); SELECT @URL = '/articlenet/article.aspx', @startdate = '2010-02-01', @enddate = '2010-02-28', @Identifier = 'id';SELECT CAST(au.Pop 阅读全文
posted @ 2010-03-18 17:18 ajuanabc 阅读(209) 评论(0) 推荐(0) 编辑
摘要:PIVOT,UNPIVOT运算符是SQL server 2005支持的新功能之一,主要用来实现行到列的转换。本文主要介绍PIVOT运算符的操作,以及如何实现动态PIVOT的行列转换。 关于UNPIVOT及SQL server 2000下的行列转换请参照本人的其它文章。一、PIVOT的语法SELECT [non-pivoted column], -- optional [additional non-pivoted columns], -- optional [first pivoted column], [additional pivoted columns] FROM ( ... 阅读全文
posted @ 2010-03-16 13:20 ajuanabc 阅读(289) 评论(0) 推荐(0) 编辑
摘要:昨天,一个读者向我提交了一个问题,请我就SQL server 隐式转换发表一些看法。当SQL server遇到一个不匹配类型的表达式的时候,它有两种选择。它使用隐式转换并能够执行或者转换错误而导致执行失败。在深入隐式转换之前,让我们假定错误的情形。 如果一个隐式转换不可能实现,SQL server可能产生两种可能的错误。如果两种数据类型不能完全兼容(简言之,在两种数据类型之间不能实现隐式或显式转换),SQL server产生下列错误:DECLARE @a INTDECLARE @b DATESET @a = @b--Msg 206, Level 16, State... 阅读全文
posted @ 2010-03-16 13:08 ajuanabc 阅读(472) 评论(0) 推荐(0) 编辑
摘要:对于数据的汇总,是数据库经常用到的任务之一,除了我们通常使用的GROUP BY分组配合聚合函数对数据汇总,以及使用UNION ALL 对数据汇总之外,SQL还提供了 GROUP BY Col1,Col2.. WITH CUBE | ROLLUP,以及COMPUTE BY 等汇总方式,本文主要介绍了使用CUBE 与ROLLUP运算符来实现数据的分级汇总。IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tb;GO CREATE TABLE tb ( Provider VARCHAR(10) ,MaterialNo VARCHAR(3) ,Quan 阅读全文
posted @ 2010-02-23 15:33 ajuanabc 阅读(141) 评论(0) 推荐(0) 编辑
摘要:数据的导入导出是数据库管理员常见的工作任务之一,尤其是平面文件的导入导出。BCP 工具则为这些任务提供了强有力的支持,它是基于DB-Library,尤其是在生产环境中,从本地传送数据到服务器或从服务器传送数据到本地,因它无需提供图形界面,减少网络带宽,提高了传输速率。BCP的全称是BULK COPY PROGRAM,它是一个命令行程序,可以完全脱离SQL server进程来实现。 常用的导入方式:bcp, BULK INSERT,OPENROWSET,or SSIS。 本文主要介绍bcp工具的使用,其他的如BULK INSERT,OPENROWSET,or SSIS请参见后续博文。 bcp的. 阅读全文
posted @ 2010-02-20 14:49 ajuanabc 阅读(231) 评论(0) 推荐(0) 编辑
摘要:--=====================================================--@@identity , SCOPE_IDENTITY,IDENT_CURRENT 三者的异同--=====================================================--1.@@IDENTITY: 返回最后插入的标识值IF OBJECT_ID('dbo.ta') IS NOT NULL DROP TABLE dbo.ta;CREATE TABLE dbo.ta(ID INT IDENTITY PRIMARY KEY ,Col V 阅读全文
posted @ 2010-01-12 13:31 ajuanabc 阅读(146) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示