Gebruik van aanhalingstekens in het script
U kunt op verschillende manieren aanhalingstekens gebruiken in scriptopdrachten.
In LOAD-opdrachten
In een LOAD-opdracht worden de volgende symbolen als aanhalingsteken gebruikt:
Beschrijving | Symbool | Codepunt | Voorbeeld |
---|---|---|---|
dubbele aanhalingstekens |
" " | 34 | "tekenreeks" |
vierkante haakjes | [ ] | 91, 93 | [tekenreeks] |
accent grave | ` ` | 96 | `tekenreeks` |
Beschrijving | Symbool | Codepunt | Voorbeeld |
---|---|---|---|
enkele aanhalingstekens |
' ' |
39 | 'tekenreeks' |
In SELECT-opdrachten
Voor een SELECT-opdracht die wordt geïnterpreteerd door een ODBC-stuurprogramma, kan het gebruik echter verschillen. Normaal gesproken moet u rechte dubbele aanhalingstekens (Alt + 0034) gebruiken voor veld- en tabelnamen en rechte enkele aanhalingstekens (Alt + 0039) voor literals. Schuine aanhalingstekens (accent grave) worden niet gebruikt. Maar bepaalde ODBC-stuurprogramma's accepteren de schuine tekens niet alleen, ze geven er zelfs de voorkeur aan. In zo'n geval bevatten de gegenereerde SELECT-opdrachten schuine aanhalingstekens.
Voorbeeld van aanhalingstekens in Microsoft Access
Microsoft Access ODBC Driver 3.4 (geleverd bij Microsoft Access 7.0) accepteert de volgende aanhalingstekens bij het analyseren van de instructie SELECT:
Veldnamen en tabelnamen:
- [ ]
- " "
- ` `
Tekenreeksliterals:
- ' '
Andere databases hebben mogelijk andere conventies.
Buiten LOAD-opdrachten
Buiten een LOAD-opdracht, op plaatsen waar Qlik Sense een uitdrukking verwacht, geven dubbele aanhalingstekens een referentie naar een variabele, en niet naar een veld, aan. Als dubbele aanhalingstekens worden gebruikt, wordt de tekenreeks geïnterpreteerd als variabele en wordt de waarde van de variabele gebruikt.
Veldreferenties en tabelreferenties buiten de context
Sommige scriptfuncties verwijzen naar velden die al gemaakt zijn of zich bevinden in de uitvoer van een LOAD-opdracht, bijvoorbeeld Exists() en Peek(). Deze veldreferenties worden buiten de context genoemd, in tegenstelling tot bronveldreferenties die verwijzen naar velden in de context, ofwel in de invoertabel van de LOAD-opdracht.
Veldreferenties en tabelreferenties buiten de context moeten worden beschouwd als literals en hebben dus enkele aanhalingstekens nodig.
Verschil tussen namen en literals
Het verschil tussen namen en literals wordt duidelijker als u de volgende voorbeelden vergelijkt:
Voorbeeld:
'Sweden' as Country
Als deze uitdrukking wordt gebruikt als deel van de veldlijst in een LOAD- of SELECT-opdracht, wordt de teksttekenreeks "Sweden" geladen als veldwaarde in het Qlik Sense-veld "Country".
Voorbeeld:
"land" as Country
Als deze uitdrukking wordt gebruikt als deel van de veldlijst in een LOAD- of SELECT-opdracht, wordt de inhoud van het databaseveld of de tabelkolom met de naam "land" geladen als veldwaarde het in Qlik Sense-veld "Country". Dit betekent dat land wordt behandeld als veldreferentie.
Verschil tussen getallen en tekenreeksliterals
Het verschil tussen getallen en tekenreeksliterals wordt duidelijker als u de volgende voorbeelden vergelijkt:
Voorbeeld:
'12/31/96'
Als deze tekenreeks wordt gebruikt als deel van een uitdrukking, wordt deze in een eerste stap geïnterpreteerd als de teksttekenreeks "12/31/96", die op zijn beurt kan worden geïnterpreteerd als een datum als de datumnotatie ‘MM/DD/YY’ is. In dat geval wordt de tekenreeks opgeslagen als duale waarde met een numerieke en tekstuele representatie.
Voorbeeld:
12/31/96
Als deze tekenreeks wordt gebruikt als deel van een uitdrukking, wordt deze numeriek geïnterpreteerd als 12 gedeeld door 31 gedeeld door 96.
Aanhalingstekens in tekenreeksen gebruiken
Als een tekenreeks tekens bevat die als aanhalingstekens kunnen worden gebruikt, is het belangrijk duidelijk aan te geven waar een tekenreeks begint en waar deze eindigt bij het inkaderen van de tekenreeks. Als de tekenreeks niet goed binnen aanhalingstekens is ingekaderd, werkt het script niet of worden de gegevens niet goed ingeladen.
Er zijn twee methoden voor het inkaderen van tekenreeksen met aanhalingstekens.
Gebruik een bepaald aanhalingsteken voor het inkaderen van de tekenreeks
Gebruik een aanhalingsteken dat niet in de tekenreeks wordt gebruikt en gebruik dit om de volledige tekenreeks binnen aanhalingstekens te zetten. In Qlik Sense wordt dat bepaalde aanhalingsteken gebruikt om te bepalen waar de tekenreeks begint en eindigt.
U kunt een van de volgende aanhalingstekens gebruiken voor het inkaderen van de volledige tekenreeks:
- Dubbele aanhalingstekens " "
- Vierkante haakjes [ ]
- Accent graves ` `
- Enkele aanhalingstekens ' '
Voorbeeld:
[Table '1 "2"]
Hier zijn vierkante haakjes gebruikt voor het inkaderen van de tekenreeks. De tekenreeks wordt ingeladen als: Tabel '1 "2"
'string `Name1` "Name2'
Hier zijn enkele aanhalingstekens gebruikt voor het inkaderen van de tekenreeks. De tekenreeks wordt ingeladen als: tekenreeks `Naam1` "Naam2
Escape-tekens gebruiken
Escape-tekens zijn extra exemplaren van het aanhalingsteken dat voor het inkaderen van de tekenreeks wordt gebruikt. Deze moeten naast elk exemplaar van het aanhalingsteken worden geplaatst als dit binnen de tekenreeks voorkomt. Als in een tekenreeks alle aanhalingstekens worden gebruikt, moet u escape-tekens toevoegen naast hetzelfde type aanhalingsteken dat voor het inkaderen van de tekenreeks wordt gebruikt. U kunt escape-tekens ook gebruiken als u een aanhalingsteken wordt gebruiken dat al in een tekenreeks wordt gebruikt.
Alleen de volgende tekens kunnen als escape-tekens worden gebruikt:
- Dubbele aanhalingstekens " "
- Vierkante haakjes [ ]
- Enkele aanhalingstekens ' '
Voorbeeld:
"Michael said ""It's a beautiful day""."
Als u de tekenreeks binnen dubbele aanhalingstekens " " zet, moet u een extra dubbel aanhalingsteken plaatsen naast elk dubbel aanhalingsteken binnen de tekenreeks.
Deze tekenreeks wordt ingeladen als Michael zei "'t is een prachtige dag". Door het escape-teken "" te gebruiken, begrijpt de Qlik Sense editor voor laden van gegevens welke dubbele aanhalingstekens deel zijn van de tekenreeks en welke het einde ervan aangeven. Het enkele aanhalingsteken ' in de afkorting 't heeft geen escape-teken nodig, omdat het niet het teken is dat voor het inkaderen van de tekenreeks wordt gebruikt.
Voorbeeld:
'Michael said: "It''s a beautiful day".'
Als u de tekenreeks binnen enkele aanhalingstekens zet, moet u een extra enkel aanhalingsteken plaatsen naast elk enkel aanhalingsteken binnen de tekenreeks.
Deze tekenreeks wordt ingeladen als Michael zei "'t is een prachtige dag". Het dubbele aanhalingsteken " voor het citeren van wat Michael zegt, heeft geen escape-teken nodig, omdat het niet het teken is dat voor het inkaderen van de tekenreeks wordt gebruikt.
Voorbeeld:
[Michael said [It's a "beautiful day]].]
Vierkante haakjes [ ] gedragen zich anders dan de andere twee aanhalingstekens. Als u vierkante haakjes als escape-teken wilt gebruiken, moet u alleen een extra vierkant haakje binnen het rechtse vierkante haakje ] plaatsen, en niet naast het linkse vierkante haakje [.
Deze tekenreeks wordt ingeladen als Michael zei ['t is een prachtige dag]. Alleen het rechtse vierkante haakje ] krijgt een escape-teken. Het enkele aanhalingsteken ' en het dubbele aanhalingsteken " in de tekenreeks hoeven geen escape-teken te krijgen, omdat deze niet voor het inkaderen van de tekenreeks worden gebruikt.