Använda citattecken i skriptet
Du kan använda citattecken i skriptsatser på många olika sätt.
Inuti LOAD-satser
I en LOAD-sats används följande symboler som citationstecken:
Beskrivning | Symbol | Kodpunkt | Exempel |
---|---|---|---|
dubbla citationstecken |
" " | 34 | "sträng" |
hakparenteser | [ ] | 91, 93 | [sträng] |
grav accent | ` ` | 96 | `sträng` |
Beskrivning | Symbol | Kodpunkt | Exempel |
---|---|---|---|
enkla citationstecken |
' ' |
39 | 'sträng' |
I SELECT-satser
För en SELECT-sats som tolkas av en ODBC-drivrutin förhåller det sig dock något annorlunda. Normalt bör du använda raka dubbla citattecken (Alt + 0034) för fält- och tabellnamn och raka enkla citattecken (Alt + 0039) för litteraler. Undvik att använda grav accent. Det är emellertid så att vissa ODBC-drivrutiner inte bara accepterar, utan rentav föredrar grava accenter som citattecken. I så fall innehåller den genererade SELECT-satsen sneda citationstecken.
Exempel: citattecken i Microsoft Access
Microsoft Access ODBC Driver 3.4 (ingår i Microsoft Access 7.0) accepterar följande citattecken när SELECT-satsen analyseras:
Fält- och tabellnamn:
- [ ]
- " "
- ` `
Stränglitteraler:
- ' '
Andra databaser kan ha andra förutsättningar.
Utanför LOAD-satser
Utanför en LOAD-sats, på ställen där Qlik Sense förväntar ett uttryck anger dubbla citationstecken en variabelreferens och inte en fältreferens. Om du använder dubbla citattecken kommer den inneslutna strängen att tolkas som en variabel och värden på variabeln används.
Fältreferenser och tabellreferenser utanför kontexten
En del skriptfunktioner hänvisar till fält som redan har skapats eller som finns i utdata till en LOAD-sats, till exempel Exists() och Peek(). Dessa fältreferenser kallas fältreferenser utan kontext, i motsatt till källfältsreferenser som hänvisar till fält som finns i kontexten, det vill säga indatatabellen till LOAD-satsen.
Fältreferenser och tabellreferenser utanför kontakt bör ses som litteraler och behöver därmed enkla citationstecken.
Skillnaden mellan namn och litteraler
Skillnaden mellan namn och litteraler framstår tydligare om man jämför följande exempel:
Exempel:
'Sweden' as Country
När detta uttryck används som del av fältlistan i en LOAD- eller SELECT-sats, läses textsträngen ”Sweden” in som fältvärde i Qlik Sense-fältet ”Country”.
Exempel:
"land" as Country
När detta uttryck används som del av fältlistan i LOAD- eller SELECT-satsen, läses innehållet i databasfältet eller tabellkolumnen med namnet "land" in som fältvärden i Qlik Sense-fältet "Country". land behandlas således som en fältreferens.
Skillnaden mellan tal och stränglitteraler
Skillnaden mellan tal och stränglitteraler framstår tydligare om man jämför följande exempel.
Exempel:
'12/31/96'
När en sträng används som en del av ett uttryck tolkas den i ett första steg som textsträngen "12/31/96", vilket i sin tur kan tolkas som ett datum om datumformatet är "MM/DD/YY". I det här fallet sparas den som ett dualt värde med både numerisk representation och textrepresentation.
Exempel:
12/31/96
När den här strängen används som en del av ett uttryck tolkas den numeriskt som 12 delat med 31 delat med 96.
Använda citattecken i en sträng
Det är viktigt att tydligt visa var strängen börjar och var den slutar när man citerar en sträng som innehåller tecken som kan användas som citattecken. Om en sträng inte citeras korrekt misslyckas skriptet eller laddar inte data korrekt.
Det finns två metoder för att citatmarkera en sträng som innehåller citattecken.
Använd ett specifikt citattecken för att citatmarkera strängen
Använd ett citattecken som inte används inne i strängen. Använd det för att citatmarkera hela strängen. Qlik Sense använder det specifika citattecknet för att avgöra var strängen börjar och slutar.
Något av följande citattecken kan användas för att citatmarkera hela strängen':
- Dubbla citattecken " "
- Hakparenteser [ ]
- Grava accenter ` `
- Enkla citattecken ' '
Exempel:
[Table '1 "2"]
Hakparenteser används för att citatmarkera strängen. Strängen laddas som : Table '1 "2"
'string `Name1` "Name2'
Enkla citattecken används för att citatmarkera strängen. Strängen laddas som: string `Name1` "Name2
Använd escape-tecken
Escape-tecken är ytterligare en förekomst av citattecknet som används för att citatmarkera strängen. De måste läggas till bredvid varje förekomst av det citattecken som finns inom strängen. När alla citattecken används inom en sträng måste du lägga till escape-tecken bredvid samma typ av citattecken som används för att citatmarkera strängen. Escape-tecken kan även användas om du vill använda ett citattecken som redan finns i strängen.
Endast följande tecken kan användas som escape-tecken:
- Dubbla citattecken " "
- Hakparenteser [ ]
- Enkla citattecken ' '
Exempel:
"Michael said ""It's a beautiful day""."
Om du citatmarkerar strängen med dubbla citattecken " ", måste du lägga till ett extra dubbelt citattecken bredvid varje dubbelt citattecken inom strängen.
Strängen laddas som Michael sa "Vilken vacker dag". Om du använder escape-tecknet "" förstår Qlik Sense Skriptredigerare vilka dubbla citattecken som tillhör strängen och vilka som indikerar strängens slut. Det enkla citattecknet ' som används i förkortningen It's behöver inte markeras med escape eftersom det inte används för att citatmarkera strängen.
Exempel:
'Michael said: "It''s a beautiful day".'
Om du citatmarkerar den här strängen med enkla citattecken, måste du lägga till ett extra enkelt citattecken bredvid varje enkelt citattecken inom strängen.
Strängen laddas som Michael sa "Vilken vacker dag". Det dubbla citattecknet " som används för att citatmarkera vad Michael sa behöver inte markeras med escape eftersom det inte används för att citatmarkera strängen.
Exempel:
[Michael said [It's a "beautiful day]].]
Hakparenteser [ ] beter sig annorlunda än de två andra citattecknen. Du ska bara lägga till en extra hakparentes bredvid den högra hakparentesen ] och inte den vänstra [ om du vill använda hakparenteser som escape-tecken.
Strängen laddas som Michael sa [Vilken vacker dag]. Bara den högra hakparentesen ] är escape-markerad. Enkelt citattecken ' och dubbelt citattecken " som används i strängen behöver inte escape-markeras eftersom de inte används för att citera strängen.