# Declare

Declare 陳述式用來建立欄位定義，您可以從中定義欄位或函數之間的關係。一組欄位定義可用來自動產生衍生的欄位，它們可用作維度。例如，您可以建立行事曆定義，並用以從日期欄位中產生相關維度，例如年份、月份、週和日。

您可以使用 Declare 設定新的欄位定義，也可以根據現有定義建立欄位定義。

## 設定新的欄位定義

語法：

definition\_name:

Declare [Field[s]] Definition [Tagged tag\_list ]

[Parameters parameter\_list ]

Fields field\_list

引數：

| 引數 | 描述 |
| --- | --- |
| definition\_name | 欄位定義的名稱，以冒號結尾。<br><br>警告備註不要將 autoCalendar 用作欄位定義的名稱，因為該名稱要保留給自動產生的行事曆範本使用。<br><br>範例：<br><br>`Calendar:` |
| tag\_list | 用逗號分隔的標記清單，套用至從欄位定義衍生的欄位。套用標記是可選的，但是若您不想套用用於指定排序順序的標記，比如 $date、$numeric 或 $text，衍生欄位在預設情況下會按照載入順序排序。<br><br>範例：<br><br>`'$date'Thank you for bringing this to our attention, and apologies for the inconvenience.`<br><br>[欄位標記](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/field-tags.htm) |
| parameter\_list | 用逗號分隔的參數清單。參數定義為以下格式 `name=value`，並獲指派了一個起始值，當重新使用欄位定義時可覆寫該值。選用。<br><br>範例：<br><br>`first_month_of_year = 1` |
| field\_list | 當使用欄位定義時要產生的用逗號分隔的欄位清單。欄位定義為以下格式：`<expression> As field_name tagged tag`。使用 `$1` 參照資料欄位，衍生欄位應從該資料欄位產生。<br><br>範例：<br><br>`Year($1) As Year tagged ('$numeric')` |

範例：

```
Calendar:
DECLARE FIELD DEFINITION TAGGED '$date'
   Parameters
      first_month_of_year = 1
   Fields      
```

```
      Year($1) As Year Tagged ('$numeric'),
      Month($1) as Month Tagged ('$numeric'),
      Date($1) as Date Tagged ('$date'),
      Week($1) as Week Tagged ('$numeric'),
      Weekday($1) as Weekday Tagged ('$numeric'),
      DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric')
;
```

```
 
```

行事曆現已定義，您可以使用 Derive 子句將其套用至已經載入的日期欄位，在此情況下為 OrderDate 和 ShippingDate。

[衍生欄位](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/derived-fields.htm) (完整範例)

## 重新使用現有欄位定義

語法：

&lt;definition name&gt;:

Declare [Field][s] Definition

Using &lt;existing\_definition&gt;

[With &lt;parameter\_assignment&gt; ]

引數：

| 引數 | 描述 |
| --- | --- |
| definition\_name | 欄位定義的名稱，以冒號結尾。<br><br>範例：<br><br>MyCalendar: |
| existing\_definition | 建立新的欄位定義時要重新使用的欄位定義。新欄位定義的運作方式與其所基於的定義相同，但是如果您使用 parameter\_assignment 來變更欄位運算式中使用的值則屬例外。<br><br>範例：<br><br>Using Calendar |
| parameter\_assignment | 用逗號分隔的參數指派清單。參數指派定義為以下格式 name=value，並覆寫在基本欄位定義中設定的參數值。選用。<br><br>範例：<br><br>first\_month\_of\_year = 4 |

範例：

在此範例中，我們重新使用在之前的範例中建立的行事曆定義。這種情況下，我們想使用一個從 4 月開始的財務年度。將數值 4 指派至 first\_month\_of\_year 參數即可實現，此操作會影響已定義的 DayNumberOfYear 欄位。

此範例假定您使用的是來自上一個範例的樣本資料和欄位定義。

MyCalendar: DECLARE FIELD DEFINITION USING Calendar WITH first\_month\_of\_year=4;

DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING MyCalendar;

當您重新載入資料指令碼後，產生的欄位在工作表編輯器中可用，且名稱為 OrderDate.MyCalendar.\* 和 ShippingDate.MyCalendar.\*。

## 瞭解更多資訊

* [Derive](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Derive.htm)