定義篩選條件

選擇運算元

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

以下是可用運算子的清單:

運算元
目的
範例
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'之間遺失的字母。
Not like
類似 Like。可讓您不復原輸入的值。 在這裡,輸入的值也必須包含 % 萬用字元。
姓氏(@lastName)與'Smi%h'不同。 在此,不會傳回姓氏為'Smi%h'的收件者。
Is empty
在此情況下,我們尋找的結果與第二個「值」欄中的空值相符。
Mobile(@mobilePhone)為空 ,會傳回所有沒有行動電話號碼的收件者。
不為空
與「空白」運算子 相反 。 不需要在第二個「值」列中輸入資料。
電子郵件(@email)不為空
包含在
傳回包含在指定值中的結果。 這些值必須以逗號分隔。
出生日期(@birthDate)包含在'12/10/1979,12/10/1984'中,將會傳回在這些日期之間出生的收件者。
不包含在
類似於運算 子中包含 Is。 在此,我們要根據輸入的值排除收件者。
出生日期(@birthDate)不包含在'12/10/1979,12/10/1984'中。 與上例不同,在這些日期內出生的收件者將不會傳回。

使用AND,或,除

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

  • And 可讓您結合兩個篩選條件,
  • Or 讓你提供另一種選擇,
  • Except 可讓您定義例外。

按一 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 為a, Calculated SQL field 其延伸為 (@domain)

注意

使用工 Search 具尋找可用欄位。

連按兩下可用欄位,將其新增至輸出欄。 在查詢結束時,每個選定欄位都會在窗口中建立一 Data preview 列。

預設不會顯示進階欄位。 按一 Display advanced fields 下可用欄位右下角的,即可顯示所有項目。 再按一下以返回前一個檢視。

例如,在收件者表格中,進階欄位是 Boolean 1Boolean 2Boolean 3Foreign key of “Folder” link​等。

以下示例顯示收件人表的高級欄位。

各種欄位類別:

圖示
說明
範例
簡單欄位
電子郵件、性別等
主鍵。 此SQL欄位是標識表中記錄的方法。
識別碼收件者是主要的金鑰,而識別碼依定義是唯一的。
外鍵。 用作其他表格的連結。
接收方外鍵、服務外鍵等。
計算欄位。 此類型的欄位是根據要求使用資料庫中的值來計算。
年齡、電子郵件網域等
包含長篇文本的欄位。
注釋、完整地址等。
索引的SQL欄位。
完整名稱、ISO程式碼等

連結至表格和系列元素:

圖示
說明
範例
特別是表的連結。 這些關聯與1-1類型關聯一致。 源表的具體值只能與目標表的一個具體值一致。 例如,只有一個收件者可以連結至國家。
資料夾、狀態、國家等
特定表格上的收集元素。 這些關聯與1-N類型關聯一致。 一個源表實例可以與目標表的幾個實例重合,但目標表的一個實例只能與源表的一個實例重合。 例如,一個收件者可以訂閱'n'訂閱信函。
訂閱、清單、排除記錄檔等。
注意
  • 使用 Add 按鈕(位於側表徵圖欄上方)可新增要編輯運算式的輸出欄。 有關編輯表達式的詳細資訊,請參 閱Building expressions
  • 按一下紅色的'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. 在視 Add 窗中按一 Data to extract 下。 在窗口 Formula type 中,選擇要輸入表達式的公式類型。

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

    Select Process on an aggregate function, and Count. Click 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 擇了類型公式,則將進入「編輯表達式」窗口。 各種函式類別可關聯至可用欄位: AggregatesStringDateNumericalCurrencyGeomarketing​和 Windowing functionOthers

運算式編輯器的外觀如下:

它可讓您選擇資料庫表格中的欄位,並新增進階函式。 下列功能可供使用:

彙總

名稱
說明
語法
平均
返回數字類型列的平均值
Avg(<value>)
計數
Counts the non-null values of a column
Count(<value>)
CountAll
計算傳回的值(所有欄位)
CountAll()
Countdistinct
Counts the distinct non-null values of a column
Countdistinct(<value>)
最大值
Returns the maximum value of a number, string, or date type column
Max(<value>)
最小
Returns the minimum value of a number, string or date type column
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
Extracts the substring starting at character n1 of the string and of length n2
Substring(<string>, <offset>, <length>)
ToString
將數字轉換為字串
ToString(<number>, <number>)
Upper
以大寫傳回字串
Upper(<string>)
VirtualLink
傳回連結的外鍵,如果其他兩個參數相等,則傳遞為參數
VirtualLink(<number>、<number>、<number>)
VirtualLinkStr
傳回連結的外鍵(文字)索引鍵,如果其他兩個參數相等,則傳回該連結的外鍵 (text) 
VirtualLinkStr(<string>, <number>, <number>)
dataLength
Returns the string size
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
Returns the date only (with time at 00:00)*
DateOnly(<date>)
Day
傳回代表日期的數字
Day(<date>)
DayOfYear
Returns the number of the day in the year of the date
DayOfYear(<date>)
DaysAgo
Returns the date corresponding to the current date minus n days
DaysAgo(<number>)
DaysAgoInt
Returns the date (integer yyyymmdd) corresponding to the current date minus n days
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
Returns the greatest integer greater than or equal to a number
Floor(<number>)
Greatest
傳回兩個數字中的較大值
Greatest(<number 1>, <number 2>)
Least
傳回兩個數字中的較小者
Least(<number 1>, <number 2>)
Mod
Returns the remainder of the integer division of n1 by 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

名稱
說明
語法
距離
Returns the distance between two points defined by their longitude and latitude, expressed in degrees.
距離(<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
Extracts the domain from an e-mail address
GetEmailDomain(<value>)
GetMirrorURL
檢索鏡像頁伺服器的URL
GetMirrorURL(<value>)
Iif
如果運算式為true,則傳回值1。 否則返回值2
Iif(<condition>, <value 1>, <value 2>)
IsBitSet
指出旗標是否在值中
IsBitSet(<identifier>, <flag>)
IsEmptyString
Returns value 2 if string 1 is empty, otherwise returns value 3
IsEmptyString(<value 1>, <value 2>, <value 3>)
NoNull
如果引數為 NULL,則返回空字串
NoNull(<value>)
RowId
返回行號
RowId
SetBit
強制值中的旗標
SetBit(<identifier>, <flag>)
ToBoolean
將數字轉換為布林值
ToBoolean(<number>)
When
如果運算式為true,則傳回值1。 If not, it returns value 2 (may only be used as a parameter of the case function)
When(<condition>, <value 1>)

窗口函式

名稱
說明
語法
Desc
套用遞減排序
Desc(<value 1>)
OrderBy
對分區內的結果進行排序
OrderBy(<value 1>)
PartitionBy
對表上的查詢結果進行分區
PartitionBy(<value 1>)
RowNum
Generates a line number based on the table partition and on a sorting sequence.
RowNum(PartitionBy(<value 1>), OrderBy(<value 1>))

本頁內容