定義篩選條件

選擇運算子

在篩選條件中,您需要使用運算子將兩個值連結在一起。

可用運算子的清單如下:

運算元
用途
範例
Equal to
傳回與第二個值欄中輸入的資料相同的結果。
姓氏(@lastName)等於'Jones',只會傳回姓氏為Jones的收件者。
Greater than
傳回大於輸入值的值。
年齡(@age)大於50歲,會傳回大於'50'的所有值,即』51」、「52」等。
Less than
傳回小於輸入值的值。
建立日期(@created)在'DaysAgo(100)'之前,會傳回在100天前建立的所有收件者。
Greater than or equal to
傳回等於或大於輸入值的所有值。
年齡(@age)大於或等於「30」,會傳回30歲或以上的所有收件者。
Less than or equal to
傳回等於或小於輸入值的所有值。
年齡(@age)小於或等於「60歲」,會傳回所有年齡在60歲或以下的收件者。
不等於
傳回與輸入值不相同的所有值。
語言(@language)等於「英語」.
開頭為
傳回以輸入值開頭的結果。
帳戶#(@account)以'32010'開頭。
開頭非為
傳回不以輸入值開頭的結果
帳戶#(@account)不以'20'開頭.
Contains
傳回至少包含輸入值的結果。
電子郵件網域(@domain)包含'mail',會傳回包含'mail'的所有網域名稱。 因此,'gmail.com'網域也會傳回。
不包含
傳回不含輸入值的結果。
電子郵件網域(@domain)不包含「vo」. 在此情況下,將不會傳回包含「vo」的網域名稱。 結果中不會顯示「voila.fr」網域名稱。
Like
Like 與 Contains 運算子非常類似。它可讓您插入 % 值中的萬用字元。
姓氏(@lastName),如「Jon%s」. 在此,萬用字元會作為「小丑」來尋找名稱「Jones」,前提是運算子忘記「n」和「s」之間缺少的字母。
Not like
類似 Like。可讓您不復原輸入的值。 在這裡,輸入的值也必須包含 % 萬用字元。
姓氏(@lastName)與'Smi%h'不同. 在此,將不會返回其姓氏為'Smi%h'的收件者。
Is empty
在此情況下,我們要尋找的結果會符合第二個值欄中的空白值。
行動(@mobilePhone)空白 傳回沒有行動號碼的所有收件者。
非空白
空白 運算元。 您不必在第二個值欄中輸入資料。
電子郵件(@email)不為空.
包含在
傳回所指示值中包含的結果。 這些值必須以逗號分隔。
出生日期(@birthDate)列於'12/10/1979,12/10/1984',會傳回這些日期之間出生的收件者。
未包含在
類似 包含在 運算元。 在此,我們要根據輸入的值排除收件者。
出生日期(@birthDate)不在'12/10/1979,12/10/1984'. 與上一個範例不同,系統不會傳回在這些日期內出生的收件者。

使用和或,除外

對於使用多個篩選條件的查詢,您需要定義條件之間的連結。 有三個可能的連結:

  • And 可讓您結合兩個篩選條件,
  • Or 讓您提供替代方案,
  • Except 可讓您定義例外。

按一下 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 按鈕(在側表徵圖欄的上方)添加要編輯表達式的輸出列。 如需編輯運算式的詳細資訊,請參閱 本節.
  • 按一下紅色的「x」(刪除)。
  • 使用箭頭更改輸出列的順序。
  • Distribution of values 作為檢視所選欄位值分佈的方式(例如連結至收件者鎮、收件者語言等的分佈)。

建立計算欄位

如有必要,請在資料格式化期間新增欄。 計算欄位會將欄新增至資料預覽區段。 按一下​Add a calculated field

有四種類型的計算欄位:

  • Fixed string:可讓您新增字元字串。

  • String with JavaScript tags:計算欄位的值結合了字元字串和JavaScript指令。

  • JavaScript expression:計算欄位的值是JavaScript函式評估的結果。 可輸入傳回的值(數字、日期等)。

  • Enumerations:此類型欄位可讓您使用/修改新欄中其中一個輸出欄的內容。

    可以使用列的源值,並為其指定目標值。 此目標值將顯示在新輸出列中。

    新增計算欄位類型的範例 Enumerations 可用,請參閱 本節.

    Enumerations 類型計算欄位可包含4個條件:

    • Keep the source value 將源值還原到目標,而不進行更改。
    • Use the following value 可讓您為未定義的來源值輸入預設目的地值。
    • Generate a warning and continue 警告用戶源值不能更改。
    • Generate an error and reject the line 可防止計算和匯入該行。

按一下 Detail of calculated field 查看插入欄位的詳細資訊。

若要移除此計算欄位,請按一下 Remove the calculated field 交叉。

建立運算式

運算式編輯工具可讓您使用運算式計算匯總、產生函式或編輯公式。

以下範例說明如何對主要金鑰執行計數。

應用以下步驟:

  1. 按一下 AddData to extract 窗口。 在 Formula type ,選擇要輸入表達式的公式類型。

    可用的公式有幾種類型: Field only, Aggregate, Expression.

    選擇 Process on an aggregate function,和 Count. 按一下​Next

  2. 計算主鍵。

以下是 Formula types 窗口:

  1. Field only 可讓您返回 Field to select 窗口。

  2. Aggregate (Process on an aggregate function). 以下是匯總使用的一些範例:

    • Count 可讓您執行主要金鑰計數。

    • Sum 可讓您加總客戶超過一年的所有購買。

    • Maximum value 可讓您尋找已購買最多「n」產品的客戶。

    • Minimum value 可讓您排序客戶,並尋找最近訂閱優惠方案的客戶。

    • Average. 此函式可讓您計算收件者的平均年齡。

      Distinct 框中,您可以恢復列的唯一值和非零值。 例如,您可以復原所有收件者的追蹤記錄,而這些追蹤記錄已變更為值1,因為這些記錄都與相同的收件者有關。

  3. Expression 開啟 Edit the expression 窗口。 這可讓您偵測數字太多的電話號碼,而可能是輸入錯誤。

    如需所有可用函式的清單,請參閱 函式清單.

函式清單

Expression 選擇「類型公式」後,將進入「編輯表達式」窗口。 各種功能類別可與可用欄位相關聯: Aggregates, String, Date, Numerical, Currency, Geomarketing, Windowing functionOthers.

運算式編輯器如下所示:

它可讓您選取資料庫表格中的欄位,並新增進階函式至這些欄位。 可使用下列函式:

彙總

名稱
說明
語法
平均
返回數字類型列的平均值
Avg(<value>)
計數
計算列的非空值
Count(<value>)
CountAll
計算傳回的值(所有欄位)
CountAll()
Countdistinct
計算列的不重複非空值
Countdistinct(<value>)
Max
傳回數字、字串或日期類型欄的最大值
Max(<value>)
最小
傳回數字、字串或日期類型欄的最小值
Min(<value>)
StdDev
傳回數字、字串或日期欄的標準差
StdDev(<value>)
總和
傳回數字、字串或日期類型欄的值總和
Sum(<value>)

字串

名稱
說明
語法
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
傳回與目前日期對應的日期(整數yyymdd)減去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>, <number of="" seconds="">)
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>)
  1. 貨幣
名稱
說明
語法
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>, <value>)
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>, <value>, <value>)
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>))

本頁內容