# coalesce — funkcja skryptu i funkcja wykresu

Funkcja coalesce zwraca pierwszy z parametrów o poprawnej reprezentacji non-NULL. Można użyć dowolnej liczby parametrów.

Składnia:

coalesce(expr1[ , expr2 , expr3 , ...])

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opisu |
| --- | --- |
| expr1 | Pierwsze wyrażenie do sprawdzenia poprawnej reprezentacji innej niż NULL. |
| expr2 | Drugie wyrażenie do sprawdzenia poprawnej reprezentacji innej niż NULL. |
| expr3 | Trzecie wyrażenie do sprawdzenia poprawnej reprezentacji innej niż NULL. |

Przykłady: wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | To wyrażenie wybierze spośród trzech różnych pól opisu produktu, gdy niektóre pola nie będą zawierać wartości dla produktu. Zgodnie z kolejnością podaną w funkcji zwracane jest pierwsze pole z wartością inną niż null. Jeśli żadne z pól nie będzie zawierać wartości, wynikiem będzie `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | To wyrażenie spowoduje obcięcie potencjalnego otaczającego cudzysłowu z pola `FileName`. Jeśli `FileName` będzie w cudzysłowie, zostanie on usunięty, a zwrócona zostanie ujęta w nim wartość `FileName` bez cudzysłowu. Jeśli funkcja `TextBetween` nie znajdzie ograniczników, zwróci wartość null, którą odrzuci funkcja Coalesce, zwracając zamiast tego nieprzetworzoną wartość `FileName`. |

## Przykład — podstawy Coalesce

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/coalesce.htm)

#### Wyrażenie wykresu

Przegląd

Ładowana jest tabela danych zawierająca dane produktów i cen. Chcesz, aby wszystkie wartości null były zastępowane alternatywną wartością.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `ProductID`

  * `ProductName`

  * `Price`

* Instrukcja zmiennej `NullInterpret` zapewniająca, że wszelkie brakujące wartości są traktowane jako NULL.

Skrypt ładowania

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

Wyniki

1. Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

   * `ProductID`

   * `ProductName`

2. Utwórz następujący wymiar wyliczany:

   * `=Coalesce(ProductName, 'Unknown Product')`

3. Utwórz następującą miarę:

   * `=Sum(Price)` w celu zwrócenia prawidłowej reprezentacji liczbowej.

4. Utwórz nową tabelę i dodaj następujące wyrażenie jako wymiar wyliczany:

   * `=Coalesce(ProductName, 'Unknown Product')`

5. Utwórz następującą miarę:

   * `=Sum(Price)` w celu zwrócenia prawidłowej reprezentacji liczbowej.

Wyniki w poniższych tabelach pokazują, jak funkcja `Coalesce` może zastąpić wartości zerowe w oryginalnym zestawie danych wartością alternatywną `Unknown Product`.

Tabela wynikowa 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

Tabela wynikowa 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## Przykład — zastąpienie wartości null alternatywną wartością priorytetową

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/coalesce.htm)

#### Wyrażenie wykresu

Przegląd

Ten przykład wykorzystuje funkcję `Coalesce` do zastąpienia brakujących danych lokalizacji alternatywną wartością zgodnie z określoną logiką priorytetów.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Instrukcja zmiennej `NullInterpret` zapewniająca, że wszelkie brakujące wartości są traktowane jako NULL.

Skrypt ładowania

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

Wyniki

1. Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Utwórz następujący wymiar wyliczany:

   * `=Coalesce(Country, State, City)`, aby wypełnić wszelkie wartości null wartościami alternatywnymi.

Tabela wynikowa

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

Wyniki pokazują, że chociaż istnieją brakujące wartości, można użyć funkcji `Coalesce`, aby zapewnić logikę sposobu wypełnienia tych instancji alternatywną wartością w celu uzupełnienia zestawu danych. Na przykład w `L004` brakuje wartości `Country`. Funkcja `Coalesce` zwraca `New South Wales`, ponieważ `State` jest drugim polem wymienionym w logice priorytetów do użycia, gdy brakuje wartości dla `Country`.