SSRS 函数

本文将向您展示 SSRS 或 SQL Server Reporting Services 中所有内置函数的列表,并附有简短的描述和简单的示例。我们已将 SSRS 函数分为不同的部分,每个部分处理不同的标准。您可以单击任何超链接以深入了解相应的函数。

除了以下函数,SSRS 还支持所有类型的运算符。因此,请参阅运算符文章以了解它们。

SSRS 字符串或文本函数

以下 SSRS 中的字符串或文本函数列表可帮助您处理字符串列。在实际应用中,您可能会以字符串格式获取日期和整数。在这种情况下,您可以使用以下函数将它们格式化为正确的数据类型。除此之外,您还可以修剪多余的空格、提取子字符串(实际字符串的一部分)、拆分和替换文本。

SSRS 字符串函数描述示例
Asc它返回字符的 ASCII 码(整数值)。Asc(Fields!Name.Value)
AscW它返回相应字符的整数值(ASCII 字符码)。AscW(Fields!Name.Value)
Chr它返回与 ASCII 码(整数值)关联的字符。Chr(84)
ChrW它返回与给定整数字符码(ASCII 码)关联的字符。ChrW(100)
Filter它将给定的字段格式化为货币值,并返回一个包含系统默认货币符号的表达式。Filter(Parameters!MultiItem.Value, “3”, True, CompareMethod.Binary)
Format它根据格式字符串表达式中给出的说明返回格式化的字符串值。Format (Fields!OrderDate.Value, “Short Date”)
FormatCurrency它返回包含给定左侧字符数的子字符串。FormatCurrency (Fields!Sales.Value, 0)
FormatDateTime它返回表示日期和时间值的字符串表达式。FormatDateTime (Fields!OrderDate.Value, DateFormat.GeneralDate)
FormatNumber它返回格式化为数字的表达式。FormatNumber (Fields!Sales.Value, 1)
FormatPercent它返回格式化为百分比并带有 % 符号的表达式。FormatPercent (Fields!Orders.Value / Sum(Fields!Orders.Value, “DataSet”), 2)
GetChar它从字符串字段中返回给定索引位置的字符。GetChar(Fields!ProductName.Value, 4)
InStr它在字符串字段中搜索给定的子字符串,并返回第一个出现的(整数索引)位置。InStr(Fields!ProductDescription.Value, “Bike”)
InStrRev它从右到左(反向)在字符串字段中搜索给定的子字符串,并返回第一个出现的索引位置(整数)。InStrRev (Fields!ProductDescription.Value, “Bike”)
Join它连接数组中的给定数量的子字符串,这些子字符串由第二个参数分隔,并返回一个字符串。Join(Parameters!Country.Value, “, “)
LCase它将给定的字符串或字符字段转换为小写。LCase(Fields!ProductName.Value)
Left它返回给定字符串的左侧部分,并根据指定的长度进行调整。Left(Fields!ProductName.Value, 2)
Len它返回字符串中的总字符数,或者存储变量所需的字节数。Len(Fields!Name.Value)
LSet它使用最后两个参数提取并返回给定字符串的一部分(子字符串)。LSet(Fields!ProductName.Value, 4)
LTrim它修剪或删除给定字段中的前导空格(开头)。LTrim(Fields!Address.Value)
Mid它返回给定字符串的右侧部分,并根据指定的长度进行调整。Mid(Fields!ProductName.Value, 2, 6)
Replace它有助于将匹配的文本替换为另一个子字符串。Replace(Fields!ProductName.Value, “Bike”, “Cycle”)
Right它从字符串字段中提取给定数量的右侧字符(子字符串)。Right (Fields!ProductName.Value, 5)
RSet它使用最后两个参数提取并返回给定字符串的一部分(子字符串)。RSet(Fields!ProductName.Value, 5)
RTrim它修剪或删除给定字段中的尾随空格(结尾)。RTrim(Fields!Address.Value)
Space它返回给定数量的空空格。Space(2)
Split它根据第二个参数拆分给定的字符串,并返回一维数组。Split(Fields!Name.Value,” “)
StrComp它比较字符串,并根据结果返回 -1、0 或 1。StrComp(Fields!Country.Value, Fields!Territory.Value)
StrConv它执行字符串转换。StrConv(Fields!FullName.Value, vbProperCase)
StrDup它将给定的字符串重复指定的次数。StrDup(5, “TG”)
StrReverse它执行字符串反转(字符顺序颠倒)。StrReverse(Fields!FullName.Value)
Trim它删除给定字段中的前导和尾随空格(如果有)。Trim(Fields!Address.Value)
UCase它将给定的字符串或字符字段转换为大写。UCase(Fields!ProductName.Value)

SSRS 日期和时间函数

以下 SSRS 日期和时间函数列表可帮助您处理日期字段或列。您可以使用下面提到的函数来处理日期字段,例如,将其转换为日期、格式化、提取日期或时间部分,如小时、分钟、天、年等。除此之外,您还可以添加或减去天数、计算两个日期之间的差异等。

SSRS 日期和时间函数描述示例
CDate它将给定的字段转换为日期。CDate(Fields!HireDate.Value)
DateAdd它将给定天数添加到现有日期字段以生成未来的日期和时间值。DateAdd(“d”, 30, Fields!HireDate.Value)
DateDiff它返回两个日期字段之间的时间间隔差,作为 Long 值。DateDiff(“yyyy”, Fields!HireDate.Value, Fields!ResignDate.Value)
DatePart它使用给定的年、月、日构造日期值,其中时间设置为午夜 (00:00:00)。DatePart(“m”, Fields!HireDate.Value, 0, 0)
DateSerial它使用给定的日期信息字符串格式并返回 Date 值,其中时间设置为午夜 (00:00:00)。DateSerial(2024,01,18)
DateString它以字符串格式返回系统当前的日期。DateString()
DateValue它有助于从日期字段中打印日期,并返回 1 到 31 之间的整数值。DateValue(“January 01, 2024”)
Day它返回自午夜以来的总秒数。Day(Fields!OrderDate.Value)
FormatDateTime它返回表示日期和时间值的字符串表达式。FormatDateTime (Fields!ShipDate.Value, DateFormat.LongDate)
Hour它有助于从日期字段中打印小时,并返回 0 到 23 之间的整数值。Hour(Fields!OrderDate.Value)
Minute它有助于从日期字段中打印分钟值,并返回 0 到 59 之间的整数值。Minute(Fields!OrderDate.Value)
Month它有助于从日期字段中打印月份编号,并返回 1 到 12 之间的整数值。Month(Fields!OrderDate.Value)
MonthName它有助于从日期字段中打印月份名称,例如一月。MonthName(Fields!OrderDate.Value)
Now它返回系统当前的日期和时间。Now()
Second它有助于从日期字段中打印秒值,并返回 0 到 59 之间的整数值。Second(Fields!OrderDate.Value)
TimeOfDay它返回系统当前一天的时间。TimeOfDay()
Timer它返回自午夜以来的总秒数。Timer()
TimeSerial它使用给定的时间信息字符串格式并返回日期和时间值,其中日期值设置为 01/01/0001。TimeSerial(10,30,45)
TimeString它以字符串格式返回系统当前一天的时间。TimeString()
TimeValue它将星期名称作为字符串值返回。TimeValue(“10,30,45”)
Today它以字符串格式返回系统当前的日期。Today()
Weekday它有助于从日期字段中打印星期几,并返回整数值。Weekday(Fields!OrderDate.Value, 0)
WeekdayName它将星期名称作为字符串值返回。WeekdayName (Fields!OrderDate.Value)
Year它有助于从日期字段中打印年份,并返回 1 到 9999 之间的整数值。Year(Fields!OrderDate.Value)

SSRS 数学函数

以下 SSRS 数学函数列表可帮助您对数字字段或列执行数学计算。您可以使用下面提到的函数来查找三角函数正弦、余弦、正切、双曲和反正版本。除此之外,您还可以找到指数、对数、平方根、幂、最大值、最小值、向下取整和向上取整值。

SSRS 数学函数描述示例
Abs它返回单精度浮点数的绝对正值。Abs(-10.9)
Acos它返回给定余弦值的角度。Acos(0.25)
Asin它返回给定正弦值的角度。Asin(0.25)
Atan它返回给定正切值的角度。Atan(0.25)
Atan2它返回 8 位有符号整数的符号。Atan2(2, 5)
BigMul它返回两个 32 位整数的乘积。+ 或 – 2147483647 是最大和最小整数范围。BigMul(2147483647,-2147483647)
Ceiling它返回大于或等于给定浮点数的最小整数值。Ceiling(Fields!YearlyIncome.Value / 12)
Cos它返回给定角度的余弦值。Cos(45)
Cosh它返回给定角度的双曲余弦值。Cosh(45)
Exp它返回 e 的给定次幂。Exp(2)
Fix它返回数字的整数部分。Fix(Fields!Orders.Value * -0.5)
Floor它返回小于或等于给定浮点数的最大整数值。Floor(Fields!YearlyIncome.Value / 12)
Int它返回数字的整数部分。Fix(Fields!Orders.Value * -2.5)
Log它返回给定数字的自然对数(底为 e)。Log(2)
Log10它返回给定数字以 10 为底的对数值。Log10(2)
Max它返回给定字段中所有非 null 值中的最大值。Max(Fields!Orders.Value)
Min它返回给定字段中所有非 null 值中的最小值。Min(Fields!Orders.Value)
Pow它返回给定数字的指定次幂。Pow(Fields!Income.Value,2)
Rnd它返回一个单精度随机数。Rnd()
Round它会将给定的双精度浮点值四舍五入到最接近的整数。Round(Fields!Sales.Value, 2)
Sign它返回 8 位有符号整数的符号。Sign(Fields!ProductCost.Value – Fields!Sales.Value)
Sin它返回给定角度的正弦值。Sin(45)
Sinh它返回给定角度的双曲正弦值。Sinh(45)
Sqrt它返回给定数字的平方根。Sqrt(25)
Tan它返回给定角度的正切值。Tan(30)
Tanh它返回给定角度的双曲正切值。Tanh(45)

检查函数

以下 SSRS 检查函数列表可帮助您检查字段是否为数组、日期、数字或 null。

SSRS 检查函数描述示例
IsArray它检查给定变量是否为数组,并返回布尔值。IsArray(Parameters!Country.Value)
IsDate它检查给定表达式是否可以评估为日期,并返回布尔值。IsDate(Fields!OrderDate.Value)
IsNothing它检查给定表达式是否已分配对象,并返回布尔值。IsNothing(Fields!MiddleName.Value)
IsNumeric它检查给定表达式是否可以评估为数字,并返回布尔值。IsNumeric(Fields!Orders.Value)

程序流程函数

以下 SSRS 程序流程函数列表可帮助您更改流程。与任何其他编程语言一样,IIF 作为 IF ELSE 语句。Switch 将处理多个条件,而 Choose 将从多个选项中选择所需的选项。

SSRS 程序流程函数描述示例
Choose它检查表达式,并根据结果返回两个给定对象中的一个。Choose(2, “100”, “200”, “300”)
IIf它检查表达式,并根据结果返回两个给定对象中的一个。IIf(Fields!Sales.Value >= 3000, “Good”, “Bad”)
Switch它有助于评估一系列表达式;如果任何表达式为 True,则返回相应的对象值。

SSRS 聚合函数

以下 SSRS 聚合函数列表可帮助您对数字字段或列执行各种聚合。您可以使用下面提到的函数来查找总计数、平均值、最小值、最大值、总和、方差、标准差以及第一个和最后一个值。它们还允许您查找运行总计和自定义聚合。

SSRS 聚合函数描述示例
Avg它返回给定字段中所有非 null 值中的平均值。Avg(Fields!Sales.Value)
Count它计算给定字段中的所有值并返回数量。Count(Fields!Name.Value)
CountDistinct它计算给定字段中所有不同的(唯一)值并返回数量。CountDistinct(Fields!Name.Value)
CountRows它计算给定范围内的总行数。CountRows()
First它从给定的表达式中返回第一个值。First(Fields!MiddleName.Value = “T”)
Last它从给定的表达式中返回最后一个值。Last(Fields!MiddleName.Value = “G”)
Max它使用指定的聚合函数返回指定表达式的运行聚合,例如运行总计。Max(Fields!Sales.Value)
Min它返回给定字段中所有非 null 值中的最小值。Min(Fields!Sales.Value)
StDev它返回给定字段中所有非 null 值中的标准差。StDev(Fields!Sales.Value)
StDevP它返回给定字段中所有非 null 值中的总体标准差。StDevP(Fields!Sales.Value)
Sum它返回给定字段中所有值的总和。Sum(Fields!Sales.Value)
Var它返回给定字段中所有非 null 值中的方差。Var(Fields!Sales.Value)
VarP它返回给定字段中所有非 null 值中的总体方差。Var(Fields!Sales.Value)
RunningValue它使用指定的聚合函数返回指定表达式的运行聚合,例如运行总计。RunningValue(Fields!SalesAmount.Value, Sum, “AdventureWorks”)
Aggregate它返回给定字段的自定义聚合,由数据提供者定义。Aggregate(Fields!Orders.Value)
Previous它返回给定字段的先前值或文本。Previous(Fields!Orders.Value)

RunningValue 函数对于计算运行总计、平均值等很有用。

  1. 汇总
  2. 运行平均值
  3. 不同运行计数
  4. 运行计数
  5. 运行标准差
  6. 总百分比
  7. 运行百分比
  8. 运行方差

财务函数

以下 SSRS 财务函数列表可帮助您处理融资数据,如资产折旧、利率、现值和终值等。

SSRS 财务函数描述
DDB它使用周期性固定利率和固定付款来计算年金的终值,并返回 Double。
FV它使用周期性固定付款和固定利率来计算年金的周期总数,并返回 Double。
IPmt它使用周期性固定付款和固定利率来计算年金给定期间的本金支付,并返回 Double。
Nper它使用周期性固定付款和固定利率来计算年金给定期间的利息支付,并返回 Double。
Pmt它使用未来要支付的周期性固定付款和固定利率来计算年金的现值,并返回 Double。
PPmt它返回资产单个期间的直线折旧,并返回 Double。
PV它使用周期性固定付款和固定利率来计算年金的付款,并返回 Double。
Rate它返回年金每个周期的利率,并返回 Double。
SLN它使用周期性固定付款和固定利率来计算年金给定期间的本金支付,并返回 Double。
SYD它返回资产给定期间的年数总和折旧,并返回 Double。

SSRS 转换函数

以下 SSRS 转换函数列表可帮助您将一种数据类型转换为另一种数据类型。您可以使用下面提到的函数将给定的字段转换为布尔值、字节、字符、日期、十进制、双精度、整数、长整型、对象、短整型、单精度、字符串等。除此之外,您还可以从十六进制和八进制值中获取字符串。

转换函数描述示例
CBool它将给定的字段转换为布尔值。CBool(Fields!Flag.Value)
CByte它将给定的字段转换为字节。CByte(Fields!CarsOwned.Value)
CChar它将给定的字段转换为 Char。CChar(Fields!MariitalStatus.Value)
CDate它将给定的字段转换为日期。CDate(Fields!HireDate.Value)
CDbl它将给定的字段转换为 Double。CDbl(Fields!Sales.Value)
CDec它将给定的字段转换为 Decimal。CDec(Fields!Sales.Value)
CInt它将给定的字段转换为 Integer。CInt(Fields!Income.Value)
Clng它将给定的字段转换为 Long。Clng(Fields!Sales.Value)
CObj它将给定的字段转换为 Object。CObj(Fields!Sales.Value)
CShort它将给定的字段转换为 Short。CShort(Fields!CarsOwned.Value)
CSng它将给定的字段转换为 Single。CSng(Fields!Income.Value)
CStr它将给定的字段转换为 String。CStr(Fields!HireDate.Value)
Fix它返回数字的整数部分。Fix(Fields!Orders.Value / -0.5)
Hex它以字符串格式返回数字的十六进制值。Hex(45)
Int它返回数字的整数部分。Int(Fields!Income.Value / 12)
Oct它以字符串格式返回数字的八进制值。Oct(10)
Str它返回数字的字符串表示。Str(Fields!Sales.Value)
Val它以适当的数据类型返回字符串字段中的数字。Val(Fields!Address.Value)

SSRS 杂项函数

以下 SSRS 杂项函数列表在许多情况下都非常重要且有用。例如,Lookup 三重奏有助于在单个报表中合并两个数据集,查找对象的层级级别(深度)和范围。此外,您还可以获取先前的值并添加行号。

SSRS 杂项函数描述示例
InScope如果当前实例在给定范围内,则返回 true。InScope(“GroupName”)
Level它返回一个整数,表示递归层级的当前深度。Level()
Lookup它使用公共字段和次级数据集中的字段组合多个数据集。Lookup(Fields!DepID.Value, Fields!DeptID.Value, Fields!DepartmentName.Value, “DepartmentDS”)
LookupSet它从所需数据集中检索一组值。当存在一对多关系时,它很有帮助。LookupSet(Fields!TerGroupID.Value, Fields!TerritoryID.Value, Fields!StoreNames.value, “StoresDS”)
MultiLookup它从所需数据集中检索一组值,其中每对都有 1:1 的关系。MultiLookup 相当于对一组名称或键调用 Lookup。
Previous它从所需数据集中检索一组值,其中每对都有 1:1 的关系。MultiLookup 相当于对一组名称或键调用 Lookup。Previous(Fields!Name.Value)
RowNumber它返回给定范围内所有行的运行计数。RowNumber(“DSet”)