Verwenden von Anführungszeichen im Skript
Sie können Anführungszeichen in Skriptbefehlen auf verschiedene Weisen verwenden.
In LOAD-Befehlen
In einem LOAD-Befehl sollten die folgenden Symbole als Anführungszeichen verwendet werden:
Beschreibung | Symbol | Codepoint | Beispiel |
---|---|---|---|
Doppelte Anführungszeichen |
" " | 34 | "String" |
Eckige Klammern | [ ] | 91, 93 | [String] |
Graviszeichen | ` ` | 96 | `String` |
Beschreibung | Symbol | Codepoint | Beispiel |
---|---|---|---|
Einfache Anführungszeichen |
' ' |
39 | 'String' |
In SELECT-Befehlen
Bei SELECT-Befehlen, die vom ODBC-Treiber interpretiert werden, kann die Verwendung möglicherweise etwas anders sein. Normalerweise sollten Sie für Feld- und Tabellennamen gerade, doppelte Anführungszeichen (Alt + 0034) verwenden und für Literale gerade, einfache Anführungszeichen (Alt + 0039), aber niemals die Graviszeichen. Einige ODBC-Treiber akzeptieren jedoch Graviszeichen nicht nur, sondern bevorzugen diese sogar. In solchen Fällen enthält der generierte SELECT-Befehl Graviszeichen.
Microsoft Access – Beispiel für Anführungszeichen
Microsoft Access ODBC Driver 3.4 (in Microsoft Access 7.0 enthalten) akzeptiert beim Analysieren der SELECT-Anweisung folgende Anführungszeichen:
Feldnamen und Tabellennamen:
- [ ]
- " "
- ` `
String-Literale:
- ' '
Andere Datenbanken haben möglicherweise andere Konventionen.
Außerhalb von LOAD-Befehlen
Außerhalb von LOAD-Befehlen – an Stellen, an denen Qlik Sense eine Formel erwartet – kennzeichnen doppelte Anführungszeichen eine Variablenreferenz, keine Feldreferenz. Wenn Sie doppelte Anführungszeichen verwenden, wird der eingeschlossene String als Variable interpretiert und der Wert der Variablen wird verwendet.
Feldreferenzen und Tabellenreferenzen ohne Kontext
Einige Skriptfunktionen beziehen sich auf Felder, die bereits erstellt wurden, oder in der Ausgabe eines LOAD-Befehls enthalten sind, z. B. Exists() und Peek(). Diese Feldreferenzen werden als Feldreferenzen ohne Kontext bezeichnet, im Gegensatz zu Quellenfeldreferenzen, die sich auf Felder im Kontext, d. h. in der Eingabetabelle des LOAD-Befehls, beziehen.
Feld- und Tabellenreferenzen ohne Kontext sollten als Literale angesehen werden und erfordern deshalb einfache Anführungszeichen.
Unterschied zwischen Namen und Literalen
Die folgenden Beispiele sollen den Unterschied zwischen Namen und Literalen verdeutlichen:
Beispiel:
'Sweden' as Country
Wenn diese Formel als Teil der Feldliste in einem LOAD- oder SELECT-Befehl verwendet wird, wird der Textstring "Sweden" als Feldwert in das Qlik Sense-Feld "Country" geladen.
Beispiel:
"land" as Country
Wird diese Formel als Teil der Feldliste in einem LOAD- oder SELECT-Befehl verwendet, wird der Inhalt des Datenbankfelds oder der Tabellenspalte namens "land" als Feldwerte in das Qlik Sense-Feld "Country" geladen. Das heißt, dass land als Feldreferenz angesehen wird.
Unterschied zwischen Zahlen und String-Literalen
Die folgenden Beispiele sollen den Unterschied zwischen Zahlen und String-Literalen verdeutlichen.
Beispiel:
'12/31/96'
Wenn dieser String als Teil einer Formel verwendet wird, wird er in einem ersten Schritt als Textstring "12/31/96" interpretiert, was wiederum als Datum interpretiert werden kann, wenn das Datumsformat 'MM/DD/YY' lautet. In diesem Fall wird er als dualer Wert sowohl mit numerischer als auch mit Textdarstellung gespeichert.
Beispiel:
12/31/96
Wenn dieser String als Teil einer Formel verwendet wird, wird er numerisch interpretiert als 12 geteilt durch 31 geteilt durch 96.
Verwenden von Anführungszeichen in einem String
Wenn ein String Zeichen enthält, die als Anführungszeichen verwendet werden können, muss klar angegeben werden, wo der String beginnt und endet, wenn er zitiert wird. Wenn der String nicht richtig zitiert wird, schlägt das Skript fehl oder lädt die Daten nicht korrekt.
Es gibt zwei Methoden für das Zitieren eines Strings, der Anführungszeichen enthält.
Ein spezifisches Anführungszeichen zum Zitieren eines Strings verwenden
Wählen Sie ein Anführungszeichen, das nicht innerhalb des Strings verwendet wird, und zitieren Sie damit den ganzen String. Qlik Sense verwendet dieses spezifische Anführungszeichen, um festzustellen, wo der String beginnt und endet.
Jedes der folgenden Anführungszeichen kann verwendet werden, um den ganzen String zu zitieren:
- Doppelte Anführungszeichen " "
- Eckige Klammern [ ]
- Graviszeichen ` `
- Einfache Anführungszeichen ' '
Beispiel:
[Table '1 "2"]
Eckige Klammern werden zum Zitieren des Strings verwendet. Der String wird wie folgt geladen: Table '1 "2"
'string `Name1` "Name2'
Einzelne Anführungszeichen werden zum Zitieren des Strings verwendet. Der String wird wie folgt geladen: string `Name1` "Name2
Escape-Zeichen verwenden
Escape-Zeichen sind ein weiteres Beispiel für ein Anführungszeichen, das zum Zitieren des Strings verwendet wird. Sie müssen neben jeder Instanz des Anführungszeichens hinzugefügt werden, das im String vorkommt. Wenn alle Anführungszeichen in einem String verwendet werden, müssen Sie Escape-Zeichen neben dem gleichen Typ Anführungszeichen hinzufügen, der zum Zitieren des Strings verwendet wurde. Escape-Zeichen können auch verwendet werden, wenn Sie ein Anführungszeichen verwenden möchten, das bereits in einem String verwendet wird.
Nur die folgenden Zeichen können als Escape-Zeichen verwendet werden:
- Doppelte Anführungszeichen " "
- Eckige Klammern [ ]
- Einfache Anführungszeichen ' '
Beispiel:
"Michael said ""It's a beautiful day""."
Wenn Sie den String mit doppelten Anführungszeichen " " zitieren, müssen Sie ein weiteres doppeltes Anführungszeichen neben jedem doppelten Anführungszeichen innerhalb des Strings hinzufügen.
Dieser String wird wie folgt geladen: Michael said "It's a beautiful day". Durch die Verwendung des Escape-Zeichens "" wird dem Qlik Sense Dateneditor angegeben, welche doppelten Anführungszeichen Teil des Strings sind und welche das Ende des Strings bezeichnen. Für das einfache Anführungszeichen ', das in der Abkürzung It's verwendet wird, ist kein Escape-Zeichen nötig, da dies nicht das Zeichen ist, das zum Zitieren des Strings verwendet wird.
Beispiel:
'Michael said: "It''s a beautiful day".'
Wenn Sie diesen String mit einfachen Anführungszeichen zitieren, müssen Sie ein weiteres einfaches Anführungszeichen neben jedem einfachen Anführungszeichen innerhalb des Strings hinzufügen.
Dieser String wird wie folgt geladen: Michael said "It's a beautiful day". Für das doppelte Anführungszeichen ", das zum Zitieren des Satzes von Michael verwendet wird, ist kein Escape-Zeichen nötig, da dies nicht das Zeichen ist, das zum Zitieren des Strings verwendet wird.
Beispiel:
[Michael said [It's a "beautiful day]].]
Eckige Klammern [ ] verhalten sich anders als die beiden anderen Anführungszeichen. Wenn Sie eckige Klammern als Escape-Zeichen verwenden möchten, müssen Sie nur eine weitere Klammer neben der rechten eckigen Klammer ] hinzufügen, nicht neben der linken eckigen Klammer [.
Dieser String wird wie folgt geladen: Michael said [It's a "beautiful day]. Nur die rechte eckige Klammer ] benötigt ein Escape-Zeichen. Für das einfache Anführungszeichen ' und das doppelte Anführungszeichen " im String sind keine Escape-Zeichen nötig, da sie nicht zum Zitieren des Strings verwendet werden.