

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 資料集參數的進階使用案例
<a name="dataset-parameters-advanced-options"></a>

本章節介紹使用資料集參數和下拉式清單控制項的更多進階選項和使用案例。請依照以下分步說明使用資料集參數建立動態下拉式清單值。

## 將多值控制項與資料集參數結合使用
<a name="dataset-parameters-dropdown"></a>

當您使用插入到資料集之自訂 SQL 中的資料集參數時，資料集參數通常會依據特定資料欄中的值篩選資料。如果您建立下拉式清單控制項並將參數指派為值，下拉式清單只會顯示參數篩選的值。下列程序說明如何建立映射至資料集參數的控制項，並顯示所有未篩選的值。

**若要在下拉式控制項中填入指派的所有值**

1. 在 SPICE 或直接查詢中建立新的單欄資料集，其中包含原始資料集中的所有唯一值。例如，假設您的原始資料集使用下列自訂 SQL：

   ```
   select * from all_flights
           where origin_state_abr = <<$State>>
   ```

   若要建立具有所有唯一原始州的單欄資料表，請將下列自訂 SQL 套用至新資料集：

   ```
   SELECT distinct origin_state_abr FROM all_flights
           order by origin_state_abr asc
   ```

   SQL 運算式會依字母順序傳回所有唯一州。新資料集沒有任何資料集參數。

1. 輸入新資料集的**名稱**，然後儲存並發布資料集。在我們的範例中，新資料集名為 `State Codes`。

1. 開啟包含原始資料集的分析，然後將新資料集新增至分析。如需將資料集新增至現有分析的相關資訊，請參閱 [將資料集新增至分析](adding-a-data-set-to-an-analysis.md)。

1. 導覽至**控制項**窗格並找到要編輯的下拉式清單控制項。選擇控制項旁邊的省略符號 (三個點)，然後選擇**編輯**。

1. 在左側**格式控制項**的**值**區段中，選擇**連結至資料集欄位**。

1. 在出現的**資料集**下拉式清單中，選擇您建立的新資料集。在我們的範例中，選擇了 `State Codes` 資料集。

1. 對於所出現的**欄位**下拉式清單，選擇適當的欄位。在我們的範例中，選擇了 `origin_state_abr` 資料集。

將控制項連結至新資料集之後，所有唯一值都會顯示在控制項的下拉式清單中。其中包括資料集參數篩選掉的值。

## 將控制項與「全選」選項結合使用
<a name="dataset-parameters-controls-select-all"></a>

依預設，當一個或多個資料集參數映射至分析參數並新增至控制項時，`Select all` 選項不可用。下列程序顯示了使用上一章節中的相同範例場景的解決方法。

**注意**  
此分步說明適用於足夠小的資料集，可以在直接查詢中載入。如果資料集很大且想要使用 `Select All` 選項，建議您將資料集載入 SPICE。但是，如果您想要將 `Select All` 選項與資料集參數結合使用，此分步說明介紹了執行此作業的方法。

首先，假設您有一個帶有自訂 SQL 的直接查詢資料集，其中包含名為 `States` 的多值參數：

```
select * from all_flights
where origin_state_abr in (<<$States>>)
```

**若要在使用資料集參數的控制項中使用「全選」選項**

1. 在分析的**參數**窗格中，找到您要使用的資料集參數，然後從參數旁邊的省略符號 (三個點) 中選擇**編輯**。

1. 在顯示的**編輯參數**視窗中，於**靜態多重預設值**區段中輸入新的預設值。在我們的範例中，預設值是 ` All States`。請注意，此範例會使用前導空格字元，以便預設值顯示為控制項中的第一項。

1. 選擇**更新**以更新參數。

1. 導覽至包含您在逐次分析中使用之資料集參數的資料集。編輯資料集的自訂 SQL，以包含全新靜態多重預設值的預設使用案例。使用 ` All States` 範例，SQL 運算式如下所示：

   ```
   select * from public.all_flights
   where
       ' All States' in (<<$States>>) or
       origin_state_abr in (<<$States>>)
   ```

   如果使用者在控制項中選擇 ` All States`，則新 SQL 運算式會傳回所有唯一記錄。如果使用者從控制項中選擇不同的值，則查詢會傳回資料集參數篩選的值。

### 將控制項與「全選」和多值選項結合使用
<a name="dataset-parameters-controls-multi-select-all"></a>

您可以將先前的 `Select all` 程序與先前討論的多值控制方法結合使用，以建立除使用者可以選取的多個值之外，還包含一個 `Select all` 值的下拉式清單控制項。此分步說明假設您已遵循先前的程序，知道如何將資料集參數映射至分析參數，並且可以在分析中建立控制項。如需映射分析參數的詳細資訊，請參閱 [在新的快速分析中映射資料集參數](dataset-parameters-analysis.md#dataset-parameters-map-to-analysis)。如需在使用資料集參數的分析中建立控制項的詳細資訊，請參閱 [將篩選條件控制項新增至映射的分析參數](dataset-parameters-analysis.md#dataset-parameters-analysis-filter-control)。

**若要使用「全選」選項和映射的資料集參數將多個值新增至控制項**

1. 開啟分析，其中包含採 `Select all` 自訂 SQL 運算式的原始資料集，以及包含原始資料集中經篩選資料欄之所有可能值的第二個資料集。

1. 導覽至先前建立的次要資料集，以傳回經篩選之資料欄的所有值。新增自訂 SQL 運算式，將先前設定的 `Select all` 選項新增至查詢。下列範例會將 ` All States` 記錄新增至資料集傳回值清單的頂端：

   ```
   (Select ' All States' as origin_state_abr)
       Union All
       (SELECT distinct origin_state_abr FROM all_flights
       order by origin_state_abr asc)
   ```

1. 返回資料集所屬的分析，並將您使用的資料集參數映射至在上一個程序之步驟 3 中建立的分析參數。分析參數和資料集參數的名稱可以相同。在我們的範例中，分析參數名為 `States`。

1. 建立新的篩選控制項或編輯現有的篩選控制項，然後選擇**隱藏全選**，隱藏顯示在多值控制項中的已停用**全選**選項。

建立控制項之後，使用者可以使用相同的控制項，以選取資料集中經篩選資料欄的全部或多個值。