共用方式為


定義公式對話方塊 (報表產生器)

用於新建包含公式的欄位。

選項

  • 欄位
    使用此索引標籤尋找您要在運算式中包含之報表模型內的欄位。按兩下欄位將其加入至運算式。
  • 函數
    使用此索引標籤選取您要在運算式中使用的函數。按兩下函數將其加入至運算式。如需每個函數的描述,請參閱下列章節。
  • 欄位名稱
    輸入您要建立的運算式名稱。
  • 公式
    用於寫入和編輯公式。
  • 搜尋
    按一下以啟動 [搜尋] 對話方塊。
  • 函數快速鍵
    按一下以將運算子加入至 [公式] 方塊中顯示的公式。[定義公式] 對話方塊會提供您最常使用之函數的快速鍵;但是您也可以從 [函數] 索引標籤中選取這些運算子。以下是每個快速鍵的說明。

    + 用來加總兩個值。

    - 用於從一個值減去另一個值。

    * 用於乘上兩個文字值。

    / 用來將兩個值相除。

    & 用來串連兩個值。

    ( 用來開始計算。

    ) 用來結束計算。

以滑鼠右鍵按一下選項

若要查看這些功能表選項,請以滑鼠右鍵按一下 [公式] 方塊中或展開之公式區域中的公式。

  • 展開
    按一下以顯示公式以及其與內容實體的關聯性。只有在想要篩選或表示彙總層級時,您才需要這樣做。
  • 重新命名
    按一下以重新命名 [公式] 對話方塊中顯示的公式。
  • 彙總到此處
    按一下欄位名稱以變更彙總層級。此選項只在展開公式之後才可用。
  • 未套用篩選
    如果您按兩下 [公式] 方塊中顯示的欄位名稱,其上定義有公式之實體與欄位本身之間的關聯性隨即出現。您可以將篩選套用至運算式中模型路徑上的任何位置。按一下以將篩選套用至運算式,然後再按 [建立新篩選]。此時會開啟 [篩選資料] 對話方塊。

函數

下列資訊描述每個可在 [定義公式] 對話方塊之 [函數] 索引標籤上找到的函數。

彙總

若要摘要某個範圍的數值,請使用下列函數。

  • SUM
    傳回值集合中所有非 Null 值的總和。

    語法

    SUM(aggregate)

    SUM 只能用於包含數值的欄位。系統會忽略 Null 值。

  • AVERAGE
    傳回值集合中所有非 Null 值的平均值 (算術平均值)。

    語法

    AVERAGE(aggregate)

    AVERAGE 只能用於包含數值的欄位。系統會忽略 Null 值。

  • MAX
    傳回值集合中所有非 Null 值的最大值。

    語法

    MAX(aggregate)

    如果是字元資料行,MAX 會在定序順序中尋找最高值。系統會忽略 Null 值。

  • MIN
    傳回值集合中所有非 Null 值的最小值。

    語法

    MIN(aggregate)

    如果是字元資料行,MIN 會以定序順序尋找最低的值。系統會忽略 Null 值。

  • COUNT
    傳回值集合中所有非 Null 值的數目。

    語法

    COUNT(aggregate)

    COUNT 一律會傳回 Int 資料類型值。

  • COUNTDISTINCT
    傳回值集合中所有非 Null 值的數目。

    語法

    COUNTDISTINCT(aggregate)

  • STDev
    傳回值集合中所有非 Null 值的標準差。

    語法

    STDEV(aggregate)

  • STDevP
    傳回值集合中所有非 Null 值的母體擴展標準差。

    語法

    STDEVP(aggregate)

  • VAR
    傳回值集合中所有非 Null 值的變異數。

    語法

    VAR(aggregate)

  • VARP
    傳回值集合中所有非 Null 值的母體擴展變異數。

    語法

    VARP(aggregate)

條件式

若要測試條件,請使用下列函數。

  • IF
    如果您指定評估為 TRUE 的條件,就傳回某個值,如果您指定評估為 FALSE 的條件,就傳回另一個值。

    語法

    IF(condition, value_if_true, value_if_false)

    條件必須評估為 TRUE 或 FALSE。Value_if_true 代表條件為 True 時傳回的值。Value_if_false 代表條件為 False 時傳回的值。

  • IN
    判斷某個值是否存在於值集合中。

    語法

    IN(item, set)

  • Switch
    評估運算式的清單,並傳回與清單中第一個為 True 之運算式相關聯的運算式值。「參數」可以有一或多個條件/值配對。

    語法

    Switch(condition1, value1, …)

轉換

若要將值從一種資料類型轉換成另一種資料類型,請使用下列函數。

  • INT
    將值轉換成整數。

    語法

    INT(value)

  • DECIMAL
    將值轉換成十進位數。

    語法

    DECIMAL(value)

  • FLOAT
    將值轉換成浮點資料類型。

    語法

    FLOAT(value)

  • TEXT
    將數值轉換成文字。

    語法

    TEXT(value)

日期和時間

若要顯示日期或時間,請使用下列函數。

  • DATE
    傳回提供指定的年、月、日之在上午 12:00:00 的日期/時間值。

    語法

    DATE(year, month, day)

  • DATEONLY
    傳回提供指定之年、月、日的日期/時間值。

    語法

    DATEONLY(datetime)

  • DATETIME
    傳回提供指定之年、月、日、小時、分鐘與秒的日期/時間值。

    語法

    DATETIME(year, month, day, hour, minute, second)

  • YEAR
    傳回日期時間中的年份值。

    語法

    YEAR(datetime)

  • QUARTER
    傳回日期時間的日曆季 (1-4)。

    語法

    QUARTER(datetime)

  • MONTH
    傳回日期時間中的月份 (1-12)。

    語法

    MONTH(datetime)

  • DAY
    擷取日期時間的日期。

    語法

    DAY(datetime)

  • HOUR
    擷取日期時間中的小時 (0-23)。

    語法

    HOUR(datetime)

  • MINUTE
    擷取日期時間的分鐘。

    語法

    MINUTE(datetime)

  • SECOND
    擷取日期時間的秒。

    語法

    SECOND(datetime)

  • DAYOFYEAR
    傳回日期時間之一年中的第幾天。1 月 1 日 = 1,依此類推,12 月 31 日 = 366 (假設是閏年)。

    語法

    DAYOFYEAR(datetime)

  • WEEK
    傳回日曆年中該週的數值。

    語法

    WEEK(datetime)

  • DAYOFWEEK
    傳回一週中的星期幾,從星期一開始。星期一 = 1,依此類推,星期日 = 7。

    語法

    DAYOFWEEK(datetime)

  • NOW
    傳回目前的日期和時間。

    語法

    NOW( )

  • TODAY
    傳回目前的日期。

    語法

    TODAY( )

  • DATEDIFF
    傳回開始時間日期和結束時間日期的差異。

    語法

    DATEDIFF(interval, datetime, datetime)

  • DATEADD
    傳回將指定的時間間隔單位數加上原始日期時間的結果日期時間。

    語法

    DATEADD(interval, units, datetime)

邏輯

若要測試條件的邏輯,請使用下列函數。

  • AND
    如果所有引數均為 TRUE,則傳回 TRUE;如果有一或多個引數為 FALSE,則傳回 FALSE。

    語法

    AND(logical, logical)

    引數必須評估為邏輯值 (如 TRUE 或 FALSE),或必須是包含邏輯值的陣列或參考。如果陣列或參考引數包含文字或空的資料格,就會忽略這些值。

  • OR
    如果有任何引數為 TRUE,則傳回 TRUE;如果所有引數均為 FALSE,則傳回 FALSE。

    語法

    OR(logical, logical)

    引數必須評估為邏輯值 (例如 TRUE 或 FALSE),或位於包含邏輯值的陣列或參考中。如果陣列或參考包含文字或空的資料格,就會忽略這些值。

  • NOT
    反轉其引數的值。當您想要確定子句不等於某一特定值時,請使用 NOT。

    語法

    NOT(logical)

    如果值為 FALSE,則 NOT 會傳回 TRUE;如果值為 TRUE,NOT 就會傳回 FALSE。

數學

若要操作數值,請使用下列函數。

  • MOD
    傳回數字除以除數之後的餘數。除數不能為 0。

    語法

    MOD(number, divisor)

  • TRUNC
    依指定的位數截斷數字。如果數字是正數,會將數字截斷至小數點的右邊。如果數字是負數,會將數字截斷至小數點的左邊。

    語法

    TRUNC(number, digits)

  • ROUND
    將數字四捨五入至指定位數。

    語法

    ROUND(number, digits)

    如果位數大於 0 (零),就會將數字四捨五入至指定的小數位數。如果位數為 0,就會將數字四捨五入至最接近整數。如果位數小於 0,就會將數字四捨五入至小數點左邊。

運算子

算術運算子

若要執行基本數學運算 (例如加法、減法或乘法)、結合數字,以及產生數值結果,請使用下列運算子。

  • + 加
    用來加總兩個或以上的項目。

    語法

    值 + 值

  • - 減
    用來從另一個項目中扣除某項目。

    語法

    值 - 值

  • * 乘
    用來將項目相乘。

    語法

    值 * 值

  • / 除
    用來將項目相除。除數不能為 0。

    語法

    值/除數

  • - 否定
    變更值的正負號。

    語法

    -值

  • ^ 乘冪
    用於將值自乘為乘冪 (乘冪)。

    語法

    值^乘冪

比較運算子

若要比較兩個值,並傳回 TRUE 或 FALSE 的邏輯值,請使用下列運算子。

  • = 等於
    用來判斷兩個值是否相等。當 value1 等於 value2 時為 True。

    語法

    value1= value2

  • <> 不等於
    用來表示兩個值互不相等。當 value1 不等於 value2 時為 True。

    語法

    value1 <> value2

  • > 大於
    用來表示一個值大於另一值。當 value1 大於 value2 時為 True。

    語法

    value1 > value2

  • >= 大於或等於
    用來表示一個值大於或等於其他值。當 value1 大於或等於 value2 時為 True。

    語法

    value1 >= value2

  • < 小於
    用來表示一個值是否小於另一值。當 value1 小於 value2 時為 True。

    語法

    value1 < value2

  • <= 小於或等於
    用來表示一個值小於或等於另一值。當 value1 小於或等於 value2 時為 True。

    語法

    value1 <= value2

Text

若要操作報表中的文字,請使用下列函數。

  • Concat (&)
    將兩個字串結合為一。第二個字串會附加至第一個字串。

    語法

    string & string

  • Find
    字串之第一個執行個體的位置。

    語法

    FIND(string, substring)

  • Left
    傳回字串最左方的字元。

    語法

    LEFT(string, length)

  • Length
    傳回字串中的字元數。

    語法

    LENGTH(string)

  • Lower
    將字串從大寫字元轉換成小寫字元。

    語法

    LOWER(string)

  • LTrim
    傳回已移除開頭空白之後的字串。

    語法

    LTRIM(string)

  • Replace
    傳回以其他子字串取代了子字串的所有執行個體之後的字串。

    語法

    REPLACE(find, replace, string)

  • Right
    傳回字串最右方的字元。

    語法

    RIGHT(string, length)

  • RTrim
    傳回已移除尾端空白之後的字串。

    語法

    RTRIM(string)

  • Text
    將數值轉換成字串。

    語法

    TEXT(value)

  • Substring
    傳回字串中的子字串。

    語法

    SUBSTRING(string, start, length)

  • Upper
    將字串從小寫字元轉換成大寫字元。

    語法

    UPPER(string)

資訊

若要傳回有關使用者的全域資訊,請使用下列函數。

  • GetUserID
    傳回使用者用來存取資料的識別碼。

    語法

    GETUSERID()

  • GetUserCulture
    傳回使用者的語言或地區設定。

    Syntax

    GETUSERCULTURE()

請參閱

概念

報表產生器 F1 說明

其他資源

使用公式 (報表產生器)
使用函數 (報表產生器)

說明及資訊

取得 SQL Server 2005 協助