# Expressie-operators

Gebruik operators om waarden te berekenen, invoer te vergelijken en voorwaarden te combineren wanneer [Expressies bouwen](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

De volgende semantiek is van toepassing op expressies voor verplaatsingstaken. Expressies die worden uitgevoerd op een cloud-dataplatform, gebruiken de semantiek van dat platform. Plaats spaties rond operatoren en zet tekst- en datumconstanten tussen aanhalingstekens, zoals `$HIRE_DATE < '2026-10-08'`.

## Rekenkundige operatoren

Rekenkundige bewerkingen op numerieke waarden

| Operator | Betekenis | Voorbeeld en resultaat |
| --- | --- | --- |
| `+` | Telt de twee operanden bij elkaar op. | `2 + 3` retourneert `5`. |
| `-` | Trekt de rechteroperand af van de linker. Een voorafgaand minteken maakt een waarde negatief. | `5 - 2` retourneert `3`. |
| `*` | Vermenigvuldigt de operanden. | `3 * 4` retourneert `12`. |
| `/` | Deelt de linkeroperand door de rechter. Geheeltallige deling kapt af naar nul. Een reële operand behoudt een fractioneel resultaat. Deling door nul retourneert NULL. | `7 / 2` retourneert `3`; `7.0 / 2` retourneert `3.5`. |
| `%` | Converteert beide operanden naar gehele getallen en retourneert de rest van de deling. Dit is geen percentageberekening. | `7 % 3` retourneert `1`. |

## Vergelijkingsoperatoren

Vergelijkingen retourneren 1 voor waar en 0 voor onwaar. Gewone vergelijkingen met NULL retourneren NULL; gebruik `IS` of `IS NOT` om ontbrekende waarden te testen.

Twee waarden vergelijken

| Operator | Betekenis | Voorbeeld en resultaat |
| --- | --- | --- |
| `=` | Test op gelijkheid. | `3 = 3` retourneert `1`. |
| `!=` | Controleert op ongelijkheid. | `3 != 4` retourneert `1`. |
| `<>` | Alternatieve ongelijkheidsoperator. | `3 <> 3` retourneert `0`. |
| `<` | Controleert of de linkerwaarde kleiner is. | `2 < 3` retourneert `1`. |
| `<=` | Test op kleiner dan of gelijk aan. | `3 <= 3` retourneert `1`. |
| `>` | Controleert of de linkerwaarde groter is. | `4 > 3` retourneert `1`. |
| `>=` | Test op groter dan of gelijk aan. | `3 >= 3` retourneert `1`. |
| `IS` | Test op gelijkheid zonder NULL te retourneren. Twee NULL-waarden zijn gelijk; een NULL-waarde en een niet-NULL-waarde zijn dat niet. | `NULL IS NULL` retourneert `1`. |
| `IS NOT` | Controleert op ongelijkheid zonder NULL te retourneren. | `NULL IS NOT 3` retourneert `1`. |

## Logische en voorwaardelijke operators

Voorwaarden combineren en waarden selecteren

| Operator | Betekenis | Voorbeeld en resultaat |
| --- | --- | --- |
| `AND` | Waar wanneer beide voorwaarden waar zijn. Een onware operand maakt het resultaat onwaar, zelfs als de andere operand NULL is. | `(3 > 2) AND (4 < 3)` retourneert `0`. |
| `OR` | Waar wanneer een van beide voorwaarden waar is. Een true-operand maakt het resultaat true, zelfs als de andere operand NULL is. | `(3 > 2) OR (4 < 3)` retourneert `1`. |
| `IN` | Controleert lidmaatschap van een lijst tussen haakjes. Als er geen waarde overeenkomt en de lijst NULL bevat, wordt NULL geretourneerd. Een lege lijst retourneert 0, inclusief voor een NULL-linkeroperand. | `2 IN (1, 2, 3)` retourneert `1`; `4 IN (1, NULL)` retourneert NULL. |
| `CASE` | Retourneert de eerste overeenkomende vertakking. Vergelijkt bij een basiswaarde deze met elke WHEN-waarde. Zonder dit wordt elke WHEN-voorwaarde getest. Gebruikt ELSE als er geen vertakking overeenkomt, of NULL als ELSE ontbreekt. | `CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END` retourneert `'High'`. `CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END` retourneert `'Two'`. |

## Tekenreeks- en patroonoperatoren

Tekst samenvoegen en patronen vergelijken

| Operator | Betekenis | Voorbeeld en resultaat |
| --- | --- | --- |
| `\|\|` | Voegt tekstwaarden samen. Een NULL-operand levert NULL op. | `'John' \|\| ' ' \|\| 'Smith'` retourneert `'John Smith'`. |
| `LIKE` | Vergelijkt de linkertekenreeks met het rechterpatroon. `%` komt overeen met nul of meer tekens; `_` komt overeen met één. Negeert standaard het verschil tussen hoofd- en kleine ASCII-letters, maar geen niet-ASCII-hoofdletterverschillen. ESCAPE specificeert één teken voor letterlijke jokertekens. | `'Alice' LIKE 'A%'` retourneert `1`. `'10%' LIKE '10!%' ESCAPE '!'` retourneert `1`. |
| `GLOB` | Hoofdlettergevoelige matching met behulp van patronen in Unix-stijl. `*` komt overeen met nul of meer tekens, `?` komt overeen met één, en vierkante haken definiëren een tekenset. | `'file.csv' GLOB '*.csv'` retourneert `1`; `'File.CSV' GLOB '*.csv'` retourneert `0`. |
| `MATCH` | Delegeert naar de door de toepassing gedefinieerde functie `match()`. Een bruikbare implementatie is vereist; de standaard SQLite-implementatie genereert een fout. | `'Quarterly sales' MATCH 'sales'` illustreert de syntaxis. Het resultaat is afhankelijk van de implementatie van de applicatie. |
| `REGEXP` | Delegeert naar de door de toepassing gedefinieerde functie `regexp()`. SQLite biedt deze functie standaard niet aan. | `'ABC123' REGEXP '^[A-Z]+[0-9]+$'` illustreert de syntaxis. Zonder een implementatie mislukt de evaluatie. |

## Bitsgewijze operators

Deze binaire operatoren werken op integerbits, niet op logische voorwaarden. `|` betekent bitsgewijze OR, zelfs als de editor deze ook in een logische categorie vermeldt.

Integer-bitbewerkingen

| Operator | Betekenis | Voorbeeld en resultaat |
| --- | --- | --- |
| `<<` | Verschuift het linker gehele getal naar links met het aantal bits in de rechteroperand. | `3 << 1` retourneert `6`. |
| `>>` | Verschuift het linker gehele getal naar rechts met het aantal bits in de rechteroperand. | `8 >> 1` retourneert `4`. |
| `&` | Bitsgewijze AND: stelt een resultaatbit alleen in wanneer beide operanden die bit hebben ingesteld. | `6 & 3` retourneert `2`. |
| `\|` | Bitsgewijze OR: stelt een resultaatbit in wanneer die bit in een van beide operanden is ingesteld. | `6 \| 3` retourneert `7`. |

## Evaluatievolgorde en ontbrekende waarden

Voor de bovenstaande binaire operatoren is de prioriteit van hoog naar laag: concatenatie; vermenigvuldiging, deling en restwaarde; optelling en aftrekking; bitsgewijze bewerkingen; geordende vergelijkingen; gelijkheids- en patroontests; AND; en vervolgens OR. Operators op hetzelfde niveau worden van links naar rechts geëvalueerd. Haakjes overschrijven deze volgorde: `(2 + 3) * 4` retourneert `20`, terwijl `2 + 3 * 4` `14` retourneert.

De meeste operators retourneren NULL wanneer een operand NULL is. De hierboven beschreven uitzonderingen omvatten `IS`, `IS NOT` en specifieke gevallen van `AND`, `OR` en `IN`. Gebruik `$COALESCE` wanneer een ontbrekende waarde een vervanging moet hebben. Zie [Expressiefuncties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).