在筛选条件中,您需要使用运算符将两个值链接在一起。
以下是可用的运算符列表:
运算符 |
用途 |
示例 |
---|---|---|
等于 |
返回与在第二个“值”列中输入的数据相同的结果。 |
姓氏(@lastName)等于“Jones”,将仅返回姓氏为Jones的收件人。 |
大于 |
返回大于输入值的值。 |
年龄(@age)大于50,将返回所有大于“50”的值,如“51”、“52”等。 |
小于 |
返回小于输入值的值。 |
创建日期(@created)早于“DaysAgo(100)”,将返回之前100天创建的所有收件人。 |
大于或等于 |
返回所有等于或大于输入值的值。 |
年龄(@age)大于或等于“30”,将返回所有30岁或以上的收件人。 |
小于或等于 |
返回等于或小于输入值的所有值。 |
年龄(@age)小于或等于“60”,将返回所有60岁或以下的收件人。 |
不等于 |
返回与输入值不相同的所有值。 |
等于“英语”的语言(@language). |
开始于 |
返回以输入值开头的结果。 |
帐户# (@account)以“32010”开头。 |
开头不是 |
返回不以输入值开头的结果 |
帐户# (@account)不以“20”开头. |
包含 |
返回至少包含输入值的结果。 |
电子邮件域(@domain)包含“mail”,将返回包含“mail”的所有域名。 因此,也会返回“gmail.com”域。 |
不包含 |
返回不包含输入值的结果。 |
电子邮件域(@domain)不包含“vo”. 在这种情况下,将不返回包含“vo”的域名。 “voila.fr”域名将不会显示在结果中。 |
相似 |
相似与包含运算符非常相似。它可让您插入 % 值中的通配符。 |
姓氏(@lastName),如“Jon%s”. 在本例中,如果操作员忘记了“n”和“s”之间缺少的字母,则使用通配符作为“绝招”来查找名称“Jones”。 |
不相似 |
与 相似相同。用于不恢复输入的值。 在本例中,输入的值也必须包含 % 个通配符字段。 |
姓氏(@lastName)不像“Smi%h”. 在此,将不会返回姓氏为“Smi%h”的收件人。 |
为空 |
在这种情况下,我们要查找的结果与第二个“值”列中的空值匹配。 |
移动设备(@mobilePhone)为空 返回所有没有手机号码的收件人。 |
不为空 |
与的工作方式相反 为空 运算符。 无需在第二个“值”列中输入数据。 |
电子邮件(@email)不为空. |
包含在 |
返回指定值中包含的结果。 这些值必须以逗号分隔。 |
出生日期(@birthDate)已列入`1979/10/1979,12/10/1984`,将返回这些日期之间出生的收件人。 |
中未包含 |
的工作方式与 包含在 运算符。 在本例中,我们要根据输入的值排除收件人。 |
出生日期(@birthDate)不包括1979/12/10/1984. 与上一个示例不同,不会返回这些日期内出生的收件人。 |
对于使用多个筛选条件的查询,需要定义条件之间的链接。 有三种可能的链接:
单击 And (默认提供)并从下拉列表中选择。
And:添加条件并启用过度过滤。
Or:添加条件并启用过度过滤。
以下示例允许您查找其电子邮件域包含“orange.co.uk”或其邮政编码以“NW”开头的收件人。
Except:如果您有两个过滤器,但第一个过滤器未返回值,则此类型的链接会创建一个例外。
在以下示例中,我们希望返回其电子邮件域包含“orange.co.uk”的收件人,除非收件人的姓氏为“Smith”。
此示例显示了一个用于显示的过滤器:说西班牙语的收件人、使用手机号码的女性收件人、没有帐号且公司名称以字母“N”开头的收件人。
本节将介绍如何借助工具栏中的蓝色箭头来排列条件的优先级。
通过指向右侧的箭头,可以向过滤器添加一定级别的圆括号。
通过指向左侧的箭头,可从筛选器中删除选定的括号级别。
垂直箭头允许您移动条件,从而更改其执行顺序。
此示例说明如何使用箭头删除括号级别。 从以下筛选条件开始: City equal to London OR gender equal to male and mobile not indicated OR account # starts with “95” and company name starts with “A”.
将光标放在 Gender (@gender) equal to Male 过滤条件,然后单击 Remove a parenthesis level 箭头。
此 Gender (@gender) equal to Male 条件已移出其圆括号。 它已经达到与“伦敦与金融城相等”的水平。 这些条件链接在一起(And)。
可用字段因表而异。 所有字段都存储在主节点(称为 Main element. 在以下示例中,可用字段位于收件人表中。 字段始终按字母顺序显示。
所选字段的详细信息将显示在窗口底部。 例如, Email domain 字段是 Calculated SQL field 其扩展为 (@domain).
使用 Search 用于查找可用字段的工具。
双击可用字段以将其添加到输出列。 在查询结束时,每个选定的字段都会在 Data preview 窗口。
默认情况下,不显示高级字段。 单击 Display advanced fields 字段的右下角显示所有内容。 再次单击可返回到前视图。
例如,在收件人表中,高级字段为 布尔值1, Boolean 2, Boolean 3, Foreign key of “Folder” link,等等。
以下示例显示了收件人表的高级字段。
各种类别的字段:
图标 |
说明 |
示例 |
---|---|---|
![]() |
简单字段 |
电子邮件、性别等。 |
![]() |
主键. 此SQL字段用于标识表中的记录。 |
标识符收件人为主键,标识符按定义是唯一的。 |
![]() |
外键。 用作指向另一个表的链接。 |
收件人外键、服务外键等。 |
![]() |
计算字段. 根据请求,使用数据库中的值计算此类型的字段。 |
年龄、电子邮件域等 |
![]() |
包含长文本的字段。 |
评论、完整地址等 |
![]() |
已编制索引的SQL字段。 |
全名、ISO代码等。 |
链接到表和收集要素:
图标 |
说明 |
示例 |
---|---|---|
![]() |
尤其是指向表的链接。 这些规则与1-1类型关联一致。 源表的出现只能与目标表的一个出现一致。 例如,一个国家/地区只能链接一个收件人。 |
文件夹、州/省、国家/地区等。 |
![]() |
特定表上的收集要素。 它们与1-N类型关联一致。 一个源表格出现次数可以与目标表格的多个出现次数一致,但目标表格出现次数可以只与源表格出现次数一致。 例如,一位收件人可以订阅“n”个订阅信。 |
订阅、列表、排除日志等。 |
如有必要,请在设置数据格式期间添加列。 计算字段将列添加到数据预览部分。 单击 Add a calculated field。
有四种类型的计算字段:
Fixed string:用于添加字符串。
String with JavaScript tags:计算字段的值将字符串和JavaScript指令组合在一起。
JavaScript expression:计算字段的值是JavaScript函数求值的结果。 可以键入返回的值(数字、日期等)。
Enumerations:利用此类型的字段,可使用/修改新列中某个输出列的内容。
可以使用列的源值并为它指定目标值。 此目标值将显示在新输出列中。
添加计算字段类型的示例 Enumerations 可用,请参阅 本节.
此 Enumerations 类型计算字段可以包括4个条件:
单击 Detail of calculated field 以查看插入字段的详细信息。
要删除此计算字段,请单击 Remove the calculated field 十字。
表达式编辑工具允许您使用表达式计算聚合、生成函数或编辑公式。
以下示例说明如何对主键运行计数。
应用以下步骤:
单击 Add 在 Data to extract 窗口。 在 Formula type 窗口中,选择公式类型以输入表达式。
有多种类型的公式可用: Field only, Aggregate, Expression.
选择 Process on an aggregate function、和 Count. 单击 Next。
计算主键。
以下是 Formula types 窗口:
Field only 可让您返回 Field to select 窗口。
Aggregate (Process on an aggregate function). 以下是聚合使用的一些示例:
Count 用于运行主键计数。
Sum 允许您合计客户在一年以上的所有购买次数。
Maximum value 允许您查找购买最多“n”个产品的客户。
Minimum value 允许您对客户进行排序,并查找最近订阅了选件的客户。
Average. 此函数允许您计算收件人的平均年龄。
此 Distinct 框用于恢复列的唯一值和非零值。 例如,您可以恢复所有收件人的跟踪日志,这些跟踪日志将更改为值1,因为它们都涉及同一收件人。
Expression 打开 Edit the expression 窗口。 这样,您就可以检测包含太多数字(可能是输入错误)的电话号码。
有关所有可用函数的列表,请参阅 函数列表.
如果 Expression 选择了类型公式,您将被带到“编辑表达式”窗口。 可以将各种类别的函数关联到可用字段: Aggregates, String, Date, Numerical, Currency, Geomarketing, Windowing function 和 Others.
表达式编辑器如下所示:
它允许您选择数据库表中的字段并向它们添加高级函数。 可以使用以下函数:
聚合
名称 |
说明 |
语法 |
平均 |
返回数字类型列的平均值 |
Avg(<值>) |
计数 |
计算列的非空值 |
Count(<值>) |
CountAll |
计算返回的值(所有字段) |
CountAll() |
Countdistinct |
计算列的不同非空值 |
Countdistinct(<值>) |
最大值 |
返回数字、字符串或日期类型列的最大值 |
Max(<值>) |
最小值 |
返回数字、字符串或日期类型列的最小值 |
Min(<值>) |
标准开发 |
返回数字、字符串或日期列的标准偏差 |
StdDev(<value>) |
总和 |
返回数字、字符串或日期类型列的值的总和 |
Sum(<值>) |
字符串
名称 |
说明 |
语法 |
AllNonNull2 |
指示所有参数是否为非 null 且不为空 |
AllNonNull2(<字符串>, <字符串>) |
AllNonNull3 |
指示所有参数是否为非 null 且不为空 |
AllNonNull3(<字符串>, <字符串>, <字符串>) |
Ascii |
返回字符串中第一个字符的 ASCII 值. |
Ascii(<字符串>) |
Char |
返回与 ASCII 代码"n"对应的字符 |
Char(<数字>) |
Charindex |
返回字符串 1 中字符串 2 的位置. |
Charindex(<字符串>, <字符串>) |
GetLine |
返回字符串的 n(从 1 到 n)行 |
GetLine(<字符串>) |
IfEquals |
如果前两个参数相等,则返回第三个参数。 如果不能,则返回最后一个参数 |
IfEquals(<字符串>, <字符串>, <字符串>, <字符串>) |
IsMemoNull |
指示作为参数传递的 Memo 是否为 null |
IsMemoNull(<memo>) |
JuxtWords |
将作为参数传递的字符串连接起来。 如有必要,在字符串之间添加空格。 |
JuxtWords(<字符串>, <字符串>) |
JuxtWords3 |
将作为参数传递的字符串连接起来。 如有必要,在字符串之间添加空格 |
JuxtWords3(<字符串>, <字符串>, <字符串>) |
LPad |
返回左侧的已完成字符串 |
LPad(<string>, <number>, <character>) |
Left |
返回字符串的前 n 个字符 |
Left(<字符串>, <数字>) |
Length |
返回字符串的长度 |
Length(<字符串>) |
Lower |
以小写形式返回字符串 |
Lower(<字符串>) |
Ltrim |
删除字符串左侧的空格 |
Ltrim(<字符串>) |
Md5Digest |
返回字符串以十六进制表示的 MD5 键值 |
Md5Digest(<字符串>) |
MemoContains |
指定 Memo 是否包含作为参数传递的字符串 |
MemoContains(<memo>, <字符串>) |
RPad |
返回右侧的已完成字符串 |
RPad(<字符串>, <数字>, <字符>) |
Right |
返回字符串的最后 n 个字符 |
Right(<字符串>) |
Rtrim |
删除字符串右侧的空格 |
Rtrim(<字符串>) |
Smart |
以大写方式返回带每个单词的第一个字母的字符串 |
Smart(<字符串>) |
Substring |
提取从字符串的字符n1开始且长度为n2的子字符串 |
Substring(<字符串>, <偏移>, <长度>) |
ToString |
将数字转换为字符串 |
ToString(<number>, <number>) |
Upper |
返回以大写表示的字符串 |
Upper(<字符串>) |
VirtualLink |
如果其他两个参数相等,则返回作为参数传递的链接的外键 |
VirtualLink(<数字>, <数字>, <数字>) |
VirtualLinkStr |
如果其他两个参数相等,则返回作为参数传递的链接的外键(文本) |
VirtualLinkStr(<字符串>, <数字>, <数字>) |
dataLength |
返回字符串大小 |
dataLength(<string>) |
日期
名称 |
说明 |
语法 |
AddDays |
向日期添加天数 |
AddDays(<日期>, <数字>) |
AddHours |
向日期添加小时数 |
AddHours(<日期>, <数字>) |
AddMinutes |
向日期添加分钟数 |
AddMinutes(<日期>, <数字>) |
AddMonths |
向日期添加月数 |
AddMonths(<日期>, <数字>) |
AddSeconds |
向日期添加秒数 |
AddSeconds(<日期>, <数字>) |
AddYears |
向日期添加年数 |
AddYears(<日期>, <数字>) |
DateOnly |
仅返回日期(且时间为00:00)* |
DateOnly(<日期>) |
Day |
返回表示日期天数的数字 |
Day(<日期>) |
DayOfYear |
返回日期年份中的天数 |
DayOfYear(<日期>) |
DaysAgo |
返回对应于当前日期n天的日期 |
DaysAgo(<数字>) |
DaysAgoInt |
返回对应于当前日期n天的日期(整数yyyymmdd) |
DaysAgoInt(<数字>) |
DaysDiff |
两个日期之间的天数差 |
DaysDiff(<结束日期>, <开始日期>) |
DaysOld |
返回日期的年龄(以天为单位) |
DaysOld(<日期>) |
GetDate |
返回服务器的当前系统日期 |
GetDate() |
Hour |
返回日期的小时数 |
Hour(<日期>) |
HoursDiff |
返回两个日期之间的小时数之差 |
HoursDiff(<结束日期>, <开始日期>) |
Minute |
返回日期的分钟数 |
Minute(<日期>) |
MinutesDiff |
返回两个日期之间的分钟数之差 |
MinutesDiff(<结束日期>, <开始日期>) |
Month |
返回表示日期月份的数字 |
Month(<日期>) |
MonthsAgo |
返回对应于当前日期 n 个月的日期 |
MonthsAgo(<数字>) |
MonthsDiff |
返回两个日期之间的月数之差 |
MonthsDiff(<结束日期>, <开始日期>) |
MonthsOld |
返回日期的年龄(以月为单位) |
MonthsOld(<日期>) |
Second |
返回日期的秒数 |
Second(<日期>) |
SecondsDiff |
返回两个日期之间的秒数之差 |
SecondsDiff(<结束日期>, <开始日期>) |
SubDays |
从日期减去天数 |
SubDays(<日期>, <数字>) |
SubHours |
从日期减去小时数 |
SubHours(<日期>, <数字>) |
SubMinutes |
从日期减去分钟数 |
SubMinutes(<日期>, <数字>) |
SubMonths |
从日期减去月数 |
SubMonths(<日期>, <数字>) |
SubSeconds |
从日期减去秒数 |
SubSeconds(<日期>, <数字>) |
SubYears |
从日期减去年数 |
SubYears(<日期>, <数字>) |
ToDate |
将日期+时间转换为日期 |
ToDate(<日期 + 时间>) |
ToDateTime |
将字符串转换为日期+时间 |
ToDateTime(<字符串>) |
TruncDate |
将日期+时间舍入到最接近的秒数 |
TruncDate(@lastModified, <秒数>) |
TruncDateTZ |
将日期+时间舍入为以秒表示的精度 |
TruncDateTZ(<日期>, <秒数>, <时区>>) |
TruncQuarter |
将日期舍入到季度 |
TruncQuarter(<日期>) |
TruncTime |
将时间部分舍入到最接近的秒 |
TruncTim(e)<date>, <number of="" seconds="">) |
TruncWeek |
将日期舍入到周 |
TruncWeek(<日期>) |
TruncYear |
将日期+时间舍入到年度的 1 月 1 日 |
TruncYear(<日期>) |
TruncWeek |
返回表示日期一周中某天的日期数字 |
WeekDay(<日期>) |
Year |
返回表示日期年份的数字 |
Year(<日期>) |
YearAnd Month |
返回表示日期的年份和月份的数字 |
YearAndMonth(<日期>) |
YearsDiff |
返回两个日期之间的年数之差 |
YearsDiff(<结束日期>, <开始日期>) |
YearsOld |
返回日期的年龄(以年为单位) |
YearsOld(<日期>) |
请注意 Dateonly 函数会考虑服务器的时区,而不是运算符的时区。
数值
名称 |
说明 |
语法 |
Abs |
返回数字的绝对值 |
Abs(<数字>) |
Ceil |
返回大于或等于某个数字的最小整数 |
Ceil(<数字>) |
Floor |
返回大于或等于某个数字的最大整数 |
Floor(<数字>) |
Greatest |
返回两个数字中的较大者 |
Greatest(<数字 1>, <数字 2>) |
Least |
返回两个数字中的较小者 |
Least(<数字 1>, <数字 2>) |
Mod |
返回n1除以n2的整数除余数 |
Mod(<数字 1>, <数字 2>) |
Percent |
返回两个数字的比值,以百分比表示 |
Percent(<数字 1>, <数字 2>) |
Random |
返回随机值 |
Random() |
Round |
将数字舍入为 n 位小数 |
Round(<数字>, <小数>) |
Sign |
返回数字的符号 |
Sign(<数字>) |
ToDouble |
将整数转换为浮点 |
ToDouble(<数字>) |
ToInt64 |
将浮点转换为 64 位整数 |
ToInt64(<数字>) |
ToInteger |
将浮点转换为整数 |
ToInteger(<数字>) |
Trunc |
将 n1 取整到 n2 位小数 |
Trunc(<n1>, <n2>) |
名称 |
说明 |
语法 |
ConversionCurrency |
将以源货币表示的金额转换为以目标货币表示的金额 |
ConvertCurrency(<amount>, <source currency="">, <target currency="">, <conversion date="">) |
格式货币 |
根据所选货币设置设置显示的金额格式 |
FormatCurrency(<amount>, <currency>) |
地理位置营销
名称 |
说明 |
语法 |
Distance |
返回由经度和纬度定义的两点之间的距离,以度表示。 |
Distance(<经度 A>, <纬度 A>, <经度 B>, <纬度 B>) |
其他
名称 |
说明 |
语法 |
Case |
如果条件为true,则返回值1。 如果不存在,则返回值2。 |
Case(When(<条件>, <值 1>), Else(<值 2>)) |
ClearBit |
删除值中的标志 |
ClearBit(<标识符>, <标识>) |
Coalesce |
如果值 1 为 0 或 null,则返回值 2,否则返回值 1 |
Coalesce(<值 1>, <值 2>) |
Decode |
如果值1 =值2,则返回值3。 如果不返回,则返回值4。 |
Decode(<值 1>, <值 2>, <值 3>, <值 4>) |
Else |
返回值 1(只能用作 case 函数的参数) |
Else(<value>, <value>) |
GetEmailDomain |
从电子邮件地址提取域名 |
GetEmailDomain(<值>) |
GetMirrorURL |
检索镜像页面服务器的 URL |
GetMirrorURL(<值>) |
Iif |
如果表达式为true,则返回值1。 如果不存在,则返回值2 |
Iif(<条件>, <值 1>, <值 2>) |
IsBitSet |
指示标志是否在值中 |
IsBitSet(<标识符>, <标识>) |
IsEmptyString |
如果字符串1为空,则返回值2,否则返回值3 |
IsEmptyString(<value>, <value>, <value>) |
NoNull |
如果参数为 NULL,则返回空字符串 |
NoNull(<值>) |
RowId |
返回行号 |
RowId |
SetBit |
强制将标志设在值中 |
SetBit(<标识符>, <标识>) |
ToBoolean |
将数字转换为布尔值 |
ToBoolean(<数字>) |
When |
如果表达式为true,则返回值1。 如果不存在,则返回值2(只能用作case函数的参数) |
When(<条件>, <值 1>) |
窗口化函数
名称 |
说明 |
语法 |
Desc |
应用降序排序 |
Desc(<值 1>) |
OrderBy |
对分区中的结果进行排序 |
OrderBy(<值 1>) |
PartitionBy |
对表格上的查询结果进行分区 |
PartitionBy(<值 1>) |
RowNum |
根据表分区和排序顺序生成行号。 |
RowNum(PartitionBy(<值 1>), OrderBy(<值 1>)) |