当前位置:首页 > 系统运维 > 正文内容

SQL ServerCoalesce的大量使用的具体描述

a8116255316年前 (2010-07-15)系统运维7

我们今天是要和大家一起讨论的是SQL ServerCoalesce的大量使用(接合),首先我们是从SQL ServerCoalesce具有文档记录的具体操作开始的。根据MSDN,coalesce返回它的参数中之一个非空表达式。

例如,

SELECT COALESCE(NULL, NULL, NULL, GETDATE())  

它将返回当前的日期。它略过之一个NULL值并返回之一个非空的值。

对Pivot(透视)使用Coalesce

假如你对AdventureWorks数据库运行下面的语句:

SELECT Name   FROM HumanResources.Department  WHERE (GroupName = 'Executive General and Administration')  

你将获得像下面的一个标准结果集。

假如你想透视数据,你可以运行下面的命令。

DECLARE @DepartmentName VARCHAR(1000)   SELECT @DepartmentName = COALESCE(@DepartmentName,'') + Name + ';'  FROM HumanResources.Department  WHERE (GroupName = 'Executive General and Administration')  SELECT @DepartmentName AS DepartmentNames  

并获得下面的结果集。

使用SQL ServerCoalesce来来执行多条SQL语句

假如你可以使用coalesce语句来透视数据,那么就可能通过透视数据和使用一个分号来分隔这些操作从而运行多条SQL语句。假设你想找到Person schema 中任何字段名称为“Name”的字段的值。假如你执行下面的脚本它就起到这种作用。

下面是结果集。

DECLARE @SQL VARCHAR(MAX)   CREATE TABLE #TMP   (Clmn VARCHAR(500),   Val VARCHAR(50))   SELECT @SQL=COALESCE(@SQL,'')+CAST('INSERT INTO #TMP Select ''' + TABLE_SCHEMA + '.' + TABLE_NAME + '.'   + COLUMN_NAME + ''' AS Clmn, Name FROM ' + TABLE_SCHEMA + '.[' + TABLE_NAME +   '];' AS VARCHAR(MAX))   FROM INFORMATION_SCHEMA.COLUMNS   JOIN sysobjects B ON INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = B.NAME   WHERE COLUMN_NAME = 'Name'   AND xtype = 'U'   AND TABLE_SCHEMA = 'Person'   PRINT @SQL   EXEC(@SQL)   SELECT * FROM #TMP   DROP TABLE #TMP   

我个人喜欢能够使用三行代码杀掉数据库中的所有事务。假如你曾经试过恢复数据库而不能获得专门的访问,你就知道这是多么有用的了。

DECLARE @SQL VARCHAR(8000)   SELECT @SQL=COALESCE(@SQL,'')+'Kill '+CAST(spid AS VARCHAR(10))+ '; '  FROM sys.sysprocesses  WHERE DBID=DB_ID('AdventureWorks')  PRINT @SQL --EXEC(@SQL) Replace the print statement with exec to execute  

这将得出一个类似于下面的结果集。

以上的相关内容就是对SQL ServerCoalesce的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21992.html

分享给朋友:

“SQL ServerCoalesce的大量使用的具体描述” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

各个都很实用:windows 7系统电脑日常小技巧

各个都很实用:windows 7系统电脑日常小技巧

在使用Windows 7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Windows 7的功能便携和强大功能,导致很多用户对于Windows 7的认识还是比较模糊,不过为了让更多的朋友了解Windows 7的特点和便携应用,今天就为大家汇...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...