在篩選條件中,您需要使用運算子將兩個值連結在一起。
以下是可用運算子的清單:
運算元 |
目的 |
範例 |
---|---|---|
Equal to |
傳回與在第二個值欄中輸入的資料相同的結果。 |
姓氏(@lastName)等於'Jones',將只傳回姓氏為Jones的收件者。 |
Greater than |
傳回大於輸入值的值。 |
年齡(@age)大於50,將傳回所有大於'50'的值,即「51」、「52」等。 |
Less than |
傳回小於輸入值的值。 |
在'DaysAgo(100)'之前建立日期(@created),將會傳回所有在100天前建立的收件者。 |
Greater than or equal to |
傳回等於或大於輸入值的所有值。 |
年齡(@age)大於或等於'30',將傳回所有30歲以上的收件者。 |
Less than or equal to |
傳回等於或低於輸入值的所有值。 |
年齡(@age)小於或等於'60',將傳回所有60歲或以下的收件者。 |
不等於 |
傳回與輸入值不相同的所有值。 |
語言(@language)等於'English'。 |
開始於 |
傳回以輸入值開始的結果。 |
帳戶#(@account)以'32010'開頭。 |
不以 |
傳回結果,不以輸入值 開始 |
帳戶#(@account)不以'20'開頭。 |
Contains |
傳回至少包含輸入值的結果。 |
電子郵件網域(@domain)包含'mail',將傳回所有包含'mail'的網域名稱。因此,'gmail.com'網域也會傳回。 |
不包含 |
傳回不含輸入值的結果。 |
電子郵件網域(@domain)不包含'vo'。在此情況下,不會傳回包含'vo'的網域名稱。 'voila.fr'網域名稱不會出現在結果中。 |
Like |
Like 與 Contains 運算子非常類似。它可讓您在值中插入%萬用字元。 |
姓氏(@lastName),如「Jon%s」。在這裡,萬用字元會當做「小丑」來尋找"Jones",如果運算子忘記'n'和's'之間遺失的字母,則會使用此字元尋找"Jones"。 |
Not like |
類似 Like。可讓您不復原輸入的值。 在這裡,輸入的值也必須包含 % 萬用字元。 |
姓氏(@lastName)與'Smi%h'不同。在此,不會傳回姓氏為'Smi%h'的收件者。 |
Is empty |
在這種情況下,我們尋找的結果與第二個「值」欄中的空值相符。 |
行動(@mobilePhone)會傳 回所有沒有行動號碼的收件者。 |
不為空 |
與Is empty運算子相反。 無需在第二個值列中輸入資料。 |
電子郵件(@email)不為空。 |
包含在 |
傳回包含在指定值中的結果。 這些值必須以逗號分隔。 |
出生日期(@birthDate)包含在'12/10/1979,12/10/1984'中,將會傳回在這些日期之間出生的收件者。 |
不包含在 |
類似Is included in 運算子的作用。 在此,我們要根據輸入的值排除收件者。 |
出生日期(@birthDate)不包含在'12/10/1979,12/10/1984'中。與上例不同,在這些日期內出生的收件者將不會傳回。 |
對於使用多個篩選條件的查詢,您需要定義條件之間的連結。 有三個可能的連結:
按一下And(預設提供)並從下拉式清單中選擇。
And:新增條件並啟用過濾。
Or:新增條件並啟用過濾。
下列範例可讓您尋找電子郵件網域包含「orange.co.uk」或其貼文程式碼以「NW」開頭的收件者。
Except:如果您有兩個篩選器,而第一個篩選器未傳回值,此類型的連結會建立例外。
在下列範例中,我們要傳回其電子郵件網域包含「orange.co.uk」的收件者,除非收件者的姓氏是「Smith」。
此範例顯示可讓您顯示的篩選:會說西班牙文或OR的收件者是具有行動號碼的女性,或是沒有帳號且公司名稱以字母"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以顯示所有項目。 再按一下以返回前一個檢視。
例如,在收件者表格中,進階欄位為Boolean 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交叉點。
運算式編輯工具可讓您計算匯整、產生函式,或使用運算式編輯公式。
以下示例說明如何對主鍵運行計數。
應用以下步驟:
按一下Data to extract窗口中的Add。 在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(<value>) |
計數 |
計算列 的非空值 |
Count(<value>) |
CountAll |
計算傳回的值(所有欄位) |
CountAll() |
Countdistinct |
計算列 的不同非空值 |
Countdistinct(<value>) |
最大值 |
傳回數字、字串或日期類型欄的最大值 |
Max(<value>) |
最小 |
傳回數字、字串或日期類型欄 的最小值 |
Min(<value>) |
StdDev |
傳回數字、字串或日期欄的標準差 |
StdDev(<value>) |
總和 |
傳回數字、字串或日期類型欄值之和 |
Sum(<value>) |
String
名稱 |
說明 |
語法 |
AllNonNull2 |
指示所有參數是否為非空值且非空白 |
AllNonNull2(<string>, <string>) |
AllNonNull3 |
指示所有參數是否為非空值且非空白 |
AllNonNull3(<string>, <string>, <string>) |
Ascii |
傳回字串中第一個字元的 ASCII 值. |
Ascii(<string>) |
Char |
傳回與 'n' ASCII 代碼對應的字元 |
字元(<number>) |
Charindex |
傳回字串 1 中字串 2 的位置. |
Charindex(<string>, <string>) |
GetLine |
傳回字串的第 n 行(從 1 到 n) |
GetLine(<string>) |
IfEquals |
如果前兩個參數相等,則傳回第三個參數。 否則,返回最後一個參數 |
IfEquals(<string>, <string>, <string>, <string>) |
IsMemoNull |
指示作為參數傳遞的備忘錄是否為空 |
IsMemoNull(<memo>) |
JuxtWords |
串連作為參數傳遞的字串。 在字串之間添加空格(如有必要)。 |
JuxtWords(<string>, <string>) |
JuxtWords3 |
串連作為參數傳遞的字串。 如有必要,在字串之間添加空格 |
JuxtWords3(<string>, <string>, <string>) |
LPad |
傳回左側的已完成字串 |
LPad(<string>, <number>, <character>) |
Left |
傳回字串的前 n 個字元 |
Left(<string>, <number>) |
Length |
傳回字串長度 |
Length(<string>) |
Lower |
傳回小寫字串 |
Lower(<string>) |
Ltrim |
移除字串左側的空格 |
Ltrim(<string>) |
Md5Digest |
返回字串 MD5 鍵的十六進位表示 |
Md5Digest(<string>) |
MemoContains |
指定備忘錄是否包含作為參數傳遞的字串 |
MemoContains(<memo>, <string>) |
RPad |
傳回右側的已完成字串 |
RPad(<string>, <number>, <character>) |
Right |
傳回字串的最後 n 個字元 |
Right(<string>) |
Rtrim |
移除字串右側的空格 |
Rtrim(<string>) |
Smart |
傳回字串,每個字詞的首字母以大寫表示 |
Smart(<string>) |
Substring |
從字串的字元n1和長度n2 開始提取子字串 |
Substring(<string>, <offset>, <length>) |
ToString |
將數字轉換為字串 |
ToString(<number>, <number>) |
Upper |
以大寫傳回字串 |
Upper(<string>) |
VirtualLink |
傳回連結的外鍵,如果其他兩個參數相等,則傳遞為參數 |
VirtualLink(<number>、<number>、<number>) |
VirtualLinkStr |
傳回連結的外鍵(文字)索引鍵,如果其他兩個參數相等,則傳回該連結的外鍵 (text) |
VirtualLinkStr(<string>, <number>, <number>) |
dataLength |
傳回字串大小 |
dataLength(<string>) |
日期
名稱 |
說明 |
語法 |
AddDays |
新增日期的天數 |
AddDays(<date>, <number>) |
AddHours |
將小時數新增至日期 |
AddHours(<date>, <number>) |
AddMinutes |
將分鐘數新增至日期 |
AddMinutes(<date>, <number>) |
AddMonths |
新增月份至日期 |
AddMonths(<date>, <number>) |
AddSeconds |
新增秒數至日期 |
AddSeconds(<date>, <number>) |
AddYears |
在日期中新增多年 |
AddYears(<date>, <number>) |
DateOnly |
僅傳回日期(時間為00:00)* |
DateOnly(<date>) |
Day |
傳回代表日期的數字 |
Day(<date>) |
DayOfYear |
傳回日期 年中的日數 |
DayOfYear(<date>) |
DaysAgo |
傳回與目前日期對應的日期減去n天 |
DaysAgo(<number>) |
DaysAgoInt |
傳回與目前日期對應的日期(整數yyymmdd)減去n天 |
DaysAgoInt(<number>) |
DaysDiff |
兩個日期之間的天數 |
DaysDiff(<end date>, <start date>) |
DaysOld |
傳回日期的年齡(以天為單位) |
DaysOld(<date>) |
GetDate |
返回伺服器的目前系統日期 |
GetDate() |
Hour |
傳回日期的小時數 |
Hour(<date>) |
HoursDiff |
傳回兩個日期之間的小時數 |
HoursDiff(<end date>, <start date>) |
Minute |
傳回日期的分鐘數 |
Minute(<date>) |
MinutesDiff |
傳回兩個日期之間的分鐘數 |
MinutesDiff(<end date>, <start date>) |
Month |
傳回代表日期月份的數字 |
Month(<date>) |
MonthsAgo |
傳回與目前日期對應的日期減去n個月 |
MonthsAgo(<number>) |
MonthsDiff |
傳回兩個日期之間的月數 |
MonthsDiff(<end date>, <start date>) |
MonthsOld |
傳回日期的月份 |
MonthsOld(<date>) |
Second |
傳回日期的秒數 |
Second(<date>) |
SecondsDiff |
傳回兩個日期之間的秒數 |
SecondsDiff(<end date>, <start date>) |
SubDays |
從日期減去天數 |
SubDays(<date>, <number>) |
SubHours |
從日期減去數小時 |
SubHours(<date>, <number>) |
SubMinutes |
從日期減去分鐘數 |
SubMinutes(<date>, <number>) |
SubMonths |
從日期減去幾個月 |
SubMonths(<date>, <number>) |
SubSeconds |
從日期減去秒數 |
SubSeconds(<date>, <number>) |
SubYears |
從日期減去數年 |
SubYears(<date>, <number>) |
ToDate |
將日期 + 時間轉換為日期 |
ToDate(<date + time>) |
ToDateTime |
將字串轉換為日期+時間 |
ToDateTime(<string>) |
TruncDate |
將日期+時間四捨五入至最接近的秒數 |
TruncDate(@lastModified, <number of seconds>) |
TruncDateTZ |
將日期+時間四捨五入為以秒為單位的指定精確度 |
TruncDateTZ(<date>, <number of seconds>, <time zone>) |
TruncQuarter |
將日期捨入為季度 |
TruncQuarter(<date>) |
TruncTime |
將時間部分捨入到最接近的秒數 |
TruncTim(e<date>, <秒數>) |
TruncWeek |
將日期捨入為一週 |
TruncWeek(<date>) |
TruncYear |
將日期+時間捨入至年度的 1 月 1 日 |
TruncYear(<date>) |
TruncWeek |
傳回代表日期當週中某天的數字 |
WeekDay(<date>) |
年 |
傳回代表日期年份的數字 |
Year(<date>) |
YearAnd Month |
傳回代表日期的年份和月份的數字 |
YearAndMonth(<date>) |
YearsDiff |
傳回兩個日期之間的年數 |
YearsDiff(<end date>, <start date>) |
YearsOld |
傳回日期的年齡 |
YearsOld(<date>) |
請注意,Dateonly函式會考慮伺服器的時區,而非運算子的時區。
數值
名稱 |
說明 |
語法 |
Abs |
返回數字的絕對值 |
Abs(<number>) |
Ceil |
傳回大於或等於數字的最小整數 |
Ceil(<number>) |
Floor |
傳回大於或等於數字 的最大整數 |
Floor(<number>) |
Greatest |
傳回兩個數字中的較大值 |
Greatest(<number 1>, <number 2>) |
Least |
傳回兩個數字中的較小者 |
Least(<number 1>, <number 2>) |
Mod |
傳回n1除以n2 的整數除的余數 |
Mod(<number 1>, <number 2>) |
Percent |
傳回兩個數字的比率,以百分比表示 |
Percent(<number 1>, <number 2>) |
Random |
傳回隨機值 |
Random() |
Round |
將數字四捨五入為n個小數 |
Round(<number>, <number of decimals>) |
Sign |
傳回數字元號 |
Sign(<number>) |
ToDouble |
將整數轉換為浮點數 |
ToDouble(<number>) |
ToInt64 |
將浮點數轉換為 64 位整數 |
ToInt64(<number>) |
ToInteger |
將浮點數轉換為整數 |
ToInteger(<number>) |
Trunc |
截斷 n1 到 n2 小數 |
Trunc(<n1>, <n2>) |
名稱 |
說明 |
語法 |
ConvertCurrency |
將來源貨幣中的金額換算為目標貨幣中的金額 |
ConvertCurrency(<amount>, <source currency>, <target currency>, <conversion date>) |
FormatCurrency |
根據所選貨幣設定格式化顯示的金額 |
FormatCurrency(<amount>, <currency>) |
Geomarketing
名稱 |
說明 |
語法 |
距離 |
傳回由經度和緯度定義的兩個點之間的距離,以度表示。 |
距離(<Longitude A>, <Latitude A>, <Longitude B>, <Latitude B>) |
Others
名稱 |
說明 |
語法 |
案例 |
如果條件為true,則返回值1。 否則,返回值2. |
Case(When(<condition>, <value 1>), Else(<value 2>)) |
ClearBit |
刪除值中的旗標 |
ClearBit(<identifier>, <flag>) |
合併 |
如果值 1 為 零或 null,則傳回值 2,否則傳回值 1 |
Coalesce(<value 1>, <value 2>) |
Decode |
如果值1 =值2,則返回值3。 如果不返回值4. |
Decode(<value 1>, <value 2>, <value 3>, <value 4>) |
Else |
傳回值 1(只能用作 case 函式的參數) |
Else(<value 1>, <value 2>) |
GetEmailDomain |
從電子郵件地址中提取域 |
GetEmailDomain(<value>) |
GetMirrorURL |
檢索鏡像頁伺服器的URL |
GetMirrorURL(<value>) |
Iif |
如果運算式為true,則傳回值1。 否則,返回值2 |
Iif(<condition>, <value 1>, <value 2>) |
IsBitSet |
指出旗標是否在值中 |
IsBitSet(<identifier>, <flag>) |
IsEmptyString |
如果字串1為空,則返回值2,否則返回值3 |
IsEmptyString(<value 1>, <value 2>, <value 3>) |
NoNull |
如果引數為 NULL,則返回空字串 |
NoNull(<value>) |
RowId |
返回行號 |
RowId |
SetBit |
強制值中的旗標 |
SetBit(<identifier>, <flag>) |
ToBoolean |
將數字轉換為布林值 |
ToBoolean(<number>) |
When |
如果運算式為true,則傳回值1。 否則,它返回值2(只能用作case函式的參數) |
When(<condition>, <value 1>) |
窗口函式
名稱 |
說明 |
語法 |
Desc |
套用遞減排序 |
Desc(<value 1>) |
OrderBy |
對分區內的結果進行排序 |
OrderBy(<value 1>) |
PartitionBy |
對表上的查詢結果進行分區 |
PartitionBy(<value 1>) |
RowNum |
根據表分區和排序順序生成行號。 |
RowNum(PartitionBy(<value 1>), OrderBy(<value 1>)) |