全球旧事资料 分类
的另一种形式也可以获得同样的结果。对变量要在赋值前要先声明。使用SELECT语句来替代SET命令的主要优点是,可以在一个操作内同时给多个变量赋值。执行下面的SELECT语句,通过SELECT语句赋值的变量就可以用于任何操作了。
DECLAREMyNumber1i
tMyNumber2i
tMyResult1i
tMyResult2i
tSELECTMyNumber1144MyNumber2121Assig
thefu
ctio
resulttothevariableSELECTMyResult1SQRTMyNumber1MyResult2SQRTMyNumber2Retur
thevariablevalueSELECTMyResult1MyResult2
上面的例子首先声明了4个变量,然后用两个SELECT语句给这些变量赋值,而不是用4个SELECT语句给变量赋值。虽然这些技术在功能上是相同的,但是在服务器的资源耗费上,用一个SELECT语句给多个变量赋值一般比用多个SET命令的效率要高。将一个甚至多个值选进参数的限制是,对变量的赋值不能和数据检索操作同时进行。这就是上面的例子使用SELECT语句来填充变量,而用另外一个SELECT语句来检索变量中数据的原因。例如,下面的脚本就不能工作
fDECLARERestockNamevarchar50SELECTProductIdRestockNameNameProductNumberFROMProductio
Product
这个脚本会产生如下错误
消息141,级别15,状态1,第2行向变量赋值的SELECT语句不能与数据检索操作结合使用。
在查询中使用函数
函数经常和查询表达式结合使用来修改列值。这只需将列名作为参数传递给函数即可,随后函数将引用插入到SELECT查询的列的列表中,如下所示:
SELECTTitleNatio
alIDNumberYEARBirthDateASBirthYearFROMHuma
ResourcesEmployee
在这个例子中,BirthDate列的值被作为参数传递给YEAR函数。函数的结果是别名为BirthYear的列。
嵌套函数
我们需要的功能常常不能仅由一个函数来实现。根据设计,函数应尽量简单,用于提供特定的功能。如果一个函数要执行许多不同的操作,就变得复杂和难以使用。因此,每个函数通常仅执行一个操作,要实现所有的功能,可以将一个函数的返回值传递给另一个函数,这称为嵌套函数调用。
以下是一个简单的例子:GETDATE函数的作用是返回当前的日期与时间,但不能返回经过格式化的数据,因为这是CONVERT函数的功能。要想同时使用这两个函数,可以把GETDATE函数的输出作为CONVERT函数的输入参数。
SELECTCONVERTVarchar20GETDATE101
f聚合函数
报表的典型用途是从全部数据中提取出代表一种趋势的值或者汇总值,这就是聚合的意义。聚合函数回答数据使用者的如下问题
上个月鸡雏的总销售量是多少
19~24岁之间的巴西男性在食品调味品上的平均支出是多少
上季度所有订单中从订r
好听全球资料 返回顶部