在脚本中使用引号
可以通过多种不同方法在脚本语句中使用引号。
在 LOAD 语句内
在LOAD 语句中,下列标记应用作字段名和表名的引号:
符号描述 | 符号 | 代码点 | 示例 |
---|---|---|---|
双引号 |
" " | 34 | “字符串” |
方括号 | [ ] | 91, 93 | [字符串] |
重音符号 | ` ` | 96 | `字符串` |
以下标记应用作字符串文字的引号:
符号描述 | 符号 | 代码点 | 示例 |
---|---|---|---|
单引号 |
' ' |
39 | ‘字符串’ |
在 SELECT 语句中
对于 SELECT 语句(由 ODBC 驱动程序解释),情况或许稍有不同。通常,对于字段名和表格名应使用直双引号 (Alt + 0034),对于文字应使用直单引号 (Alt + 0039),并避免使用重音符号。但是,一些 ODBC 驱动程序不仅将重音符号视为引号,而且首选重音符号。在这种情况下,生成的 SELECT 语句包含重音引号。
Microsoft Access 引号示例
Microsoft Access ODBC Driver 3.4(包括在 Microsoft Access 7.0 中)在分析 SELECT 语句时接受以下引号:
符号描述 | 符号 |
---|---|
字段名和表格名: |
[ ] 或 " " 或 ` ` |
字符串文字: |
' ' |
其他数据库可能具有不同的约定。
在 LOAD 语句外
在 LOAD 语句外,QlikView 期望在表达式中使用双引号表示变量引用,而不是字段引用。如果使用双引号,则应将括起来的字符串解释为变量和将要使用的变量的值。
上下文外字段引用和表格引用
一些脚本函数引用已创建的字段,或者 LOAD 语句输出中的字段,如 Exists() 和 Peek()。这些字段引用被称为上下文外字段引用,与引用上下文中的字段的源字段引用相对(上下文中的字段即 LOAD 语句输入表中的字段)。
应将上下文外字段引用和表格引用看作是文字,因此需要使用单引号。
名称和文字之间的差异
比较以下示例,名称和文字之间的差异会变得更加清晰:
示例:
'Sweden' as Country
如果在 LOAD 或 SELECT 语句中将此表达式用作字段列表的一部分,则会将文本字符串“Sweden”作为字段值加载到 QlikView 字段“Country”。
示例:
"land" as Country
如果在 LOAD 或 SELECT 语句中将此表达式用作字段列表的一部分,则会将数据库字段的内容和名为“land”的表格列作为字段值加载到 QlikView 字段“Country”。这意味着会将 land 视为字段引用。
数值和字符串文字之间的差异
比较以下示例,数值和字符串文字之间的差异会变得更加清晰:
示例:
'12/31/96'
如果将此字符串用作表达式的一部分,则会在第一步中将其解释为文本字符串 “12/31/96”,这反过来也可以将其解释为日期,如果日期格式为 'MM/DD/YY'。在这种情况下,会将它存储作为同时包含数字和文字表示形式的对偶值。
示例:
12/31/96
如果将此字符串用作表达式的一部分,则会将它解释为 12 除以 31 除以 96 的数字。
在字符串中使用引号
如果字符串中包含可以用作引号的字符,在引用字符串时,务必明确指明字符串开始的位置和结束的位置。如果未正确引用字符串,脚本将失败或不能正确加载数据。
有两种方法可以引用包含引号的字符串。
使用特定的引号引用字符串
选择字符串中未使用的引号,并使用它来引用整个字符串。QlikView 将使用该特定的引号确定字符串开始与结束的位置。
以下任一引号均可用于引用整个字符串:
- 双引号 " "
- 方括号 [ ]
- 重音符号 ` `
- 单引号 ' '
示例:
[表格 '1 "2"]
使用方括号引用字符串。字符串加载为:表格 '1 "2"
'string `Name1`"Name2'
使用单引号引用字符串。字符串加载为:string `Name1` "Name2
使用转义字符
转义字符是用于引用字符串的引号的附加实例。必须在字符串内出现的每个引号实例旁边添加转义字符。当字符串中使用了所有引号时,您需要在用于引用字符串的相同类型的引号旁边添加转义字符。如果您要使用已在字符串中使用的引号,也可以使用转义字符。
只有以下符号可以用作转义字符:
- 双引号 " "
- 方括号 [ ]
- 单引号 ' '
示例:
"Michael said ""It's a beautiful day""."
如果您使用双引号 " " 引用字符串,则必须在字符串内使用的每个双引号旁边添加一个额外的双引号。
该字符串将加载为 Michael said "It's a beautiful day". 通过使用转义字符 "",QlikView 脚本编辑器可以获知哪个双引号属于字符串,哪个双引号表示字符串的结尾。在缩写词 It's 中使用的单引号 ' 不需要转义,因为它不是用于引用字符串的符号。
示例:
'Michael said: "It''s a beautiful day".'
如果您使用单引号引用此字符串,则必须在字符串内使用的每个单引号旁边添加一个额外的单引号。
该字符串将加载为 Michael said "It's a beautiful day". 用于引用 Michael 说话内容的双引号 " 不需要转义,因为它不是用于引用字符串的符号。
示例:
[Michael said [It's a "beautiful day]].]
方括号 [ ] 的作用与其他两种引号不同。如果您要将方括号用作转义字符,必须只在右方括号 ] 旁边添加一个额外的方括号,不要在左方括号 [ 旁边添加。
该字符串将加载为 Michael said [It's a "beautiful day]. 仅右方括号 ] 会被转义。字符串中使用的单引号 ' 和双引号 " 不需要转义,因为它们不是用于引用字符串。