77范文网 - 专业文章范例文档资料分享平台

SQL Server 2005范例代码查询辞典(5)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

在这个示例中,LastName列为Samant的Title列的值是NULL值。ISNULL函数在查询结果中把NULL值替换为UNKNOWN字符串表达式。

8.4.2 使用ISNULL进行灵活的搜索

在这个技巧中,我会演示如何在变量可能有或没有填充的情况下在查

询中进行灵活、动态的搜索。这个技巧声明了3个局部搜索变量ProductID、StartDate和StandardCost。通过使用这个技术,你的查询可以根据所有、一些或者0个参数来返回结果。在这个示例中,只指定了ProductID:

只使用了@ProductID

用于搜索的局部变量

这个查询返回:

在第二个示例中,通过最小和最大的StandardCost范围来进行搜索:

用于搜索的局部变量

这个查询返回下面的(部分)结果:

解析

本技巧中演示的方法的优势在于代码很灵活,允许我们以无数种方式

搜索数据,并且能让每个搜索条件为可选的。这个技巧的关键在于WHERE子句。每一个搜索条件都使用ISNULL和局部变量名,后面跟列名本身:

如果参数没有设置,它就会是NULL,因此每列的搜索条件会对列本身的值进行运算——总是返回TRUE。只有指定的参数才会用来过滤结果。

8.4.3 返回表达式列表中第一个非NULL值

COALESCE函数返回提供的表达式列表中第一个非NULL值。语法是:

这个技巧演示了如何使用COALESCE来返回第一个出现的非NULL值:

这个查询返回:

解析

在这个技巧中,我们创建了3个局部变量:@Value1、@Value2和@Value3。只有@Value2和@Value3被设置为整数值。没有设置值的变量@Value1是NULL。

在COALESCE中,从@Value1到@Value3一次检查3个值。由于@Value2变量是第一个非NULL值的变量,所以返回了“22”。

8.4.4 当两个表达式相等的时候返回NULL值,否则返回第一个表达式

当提供的两个表达式有相同值的时候NULLIF返回NULL值,否则返回第一个表达式。

本例演示了如何使用NULLIF来运算两个表达式。如果两个表达式相等,NULL值会被返回,否则会返回第一个运算的表达式:

这个查询返回:

下面的示例测试两个表达式相等时返回的值:

这个查询返回:

解析

在这个技巧中,开始的批处理有两个不同的值:55和955。由于@Value1先运算并且两个值不同,因此NULLIF条件是FALSE,并返回了先运算的值。在第二个批处理中,@Value1和@Value2相等,所以NULLIF返回了NULL值。

8.5 日期函数

在本书的开始我们已经提到过,SQL Server 2005有两种数据类型来存储日期和时间数据:datetime和smalldatetime。datetime数据类型保存介于1753

年1月1日和9999年12月31日之间的数据,测量时间最高达到3.33毫秒。smalldatetime数据类型保存更小的日期范围,从1900年1月1日到2079年6月6日,时间精度为1分钟。SQL Server 2005提供了一些使用这些数据类型操作的函数,如表8-5。

表8-5 日期函数

函 数 名 DATEADD DATEDIFF DATENAME DATEPART DAY、MONTH和YEAR

描 述

DATEADD根据指定的间隔和数字返回一个增加或减少后

的新日期

DATEDIFF从第二个日期减去第一个日期并生成一个指定的datepart码格式的值

DATENAME返回datepart码指定的一部分日期的字符串值

这个函数返回datepart码指定的一部分日期的整数值 DAY返回表示日的整数值,MONTH返回表示月的整数而YEAR返回表示计算日期的年的整数

GETDATE、GETDATE和CURRENT_TIMESTAMP都返回当前的日期和时GETUTCDATE和间。GETUTCDATE返回格林尼治平时(协调世界时) CURRENT_TIMESTAMP

下面的一些技巧会演示这些日期函数。

8.5.1 返回当前日期和时间

GETDATE和CURRENT_TIMESTAMP都返回当前的日期和时间。GETUTCDATE返回格林尼治平时(协调世界时)。

这个示例演示如何返回当前的日期和时间以及协调世界时(格林尼治平时):

协调世界时或格林尼治平时

当前日期和时间

当前日期和时间

这个查询返回:

解析

这个技巧演示了获取当前日期和时间的3种方法。这3个函数都能在表的列定义中用作日期数据类型的DEFAULT值。

8.5.2 增加或减少日期值

DATEADD返回已经增加或减少的另外一个日期表达式的结果。语法是:

datepart部分用于指定要修改的时间或日期的单位,如表8-6描述的那样: 表8-6 depart代码 代 码 yy或者yyyy qq或q mm或m dy或y dd或d wk或ww dw或w hh mi或n ss或s ms

描 述 年 季度 月 年中第几天 天 周 星期几 小时 分钟 秒 毫秒

DATEADD函数的第二个参数是要增加或减少日期的数字值(正数或负数)。第三个参数是要修改的日期。

第一个示例根据年减少日期:

这个查询返回:

下面的示例根据季度增加日期:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库SQL Server 2005范例代码查询辞典(5)在线全文阅读。

SQL Server 2005范例代码查询辞典(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/620428.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: