在脚本中使用引号

可以通过多种不同方法在脚本语句中使用引号。

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 语句输入表中的字段)。

应将上下文外字段引用和表格引用看作是文字,因此需要使用单引号。

名称和文字之间的差异

比较以下示例,名称和文字之间的差异会变得更加清晰:

Example:  

'Sweden' as Country

如果在 LOADSELECT 语句中将此表达式用作字段列表的一部分,则会将文本字符串“Sweden”作为字段值加载到 QlikView 字段“Country”。

Example:  

"land" as Country

如果在 LOADSELECT 语句中将此表达式用作字段列表的一部分,则会将数据库字段的内容和名为“land”的表格列作为字段值加载到 QlikView 字段“Country”。这意味着会将 land 视为字段引用。

数值和字符串文字之间的差异

比较以下示例,数值和字符串文字之间的差异会变得更加清晰:

Example:  

'12/31/96'

如果将此字符串用作表达式的一部分,则会在第一步中将其解释为文本字符串“12/31/96”,这反过来也可以将其解释为日期,如果日期格式为“MM/DD/YY”。在这种情况下,会将它存储作为同时包含数字和文字表示形式的对偶值。

Example:  

12/31/96

如果将此字符串用作表达式的一部分,则会将它解释为 12 除以 31 除以 96 的数字。

在字符串中使用引号

如果字符串中包含可以用作引号的字符,在引用字符串时,务必明确指明字符串开始的位置和结束的位置。如果未正确引用字符串,脚本将失败或不能正确加载数据。

有两种方法可以引用包含引号的字符串。

使用特定的引号引用字符串

选择字符串中未使用的引号,并使用它来引用整个字符串。QlikView 将使用该特定的引号确定字符串开始与结束的位置。

以下任一引号均可用于引用整个字符串:

  • 双引号 " "
  • 方括号 [ ]
  • 重音符号 ` `
  • 单引号 ' '

Example:  

[表格 '1 "2"]

使用方括号引用字符串。字符串加载为:表格 '1 "2"

'string `Name1`"Name2'

使用单引号引用字符串。字符串加载为:string `Name1` "Name2

使用转义字符

转义字符是用于引用字符串的引号的附加实例。必须在字符串内出现的每个引号实例旁边添加转义字符。当字符串中使用了所有引号时,您需要在用于引用字符串的相同类型的引号旁边添加转义字符。如果您要使用已在字符串中使用的引号,也可以使用转义字符。

只有以下符号可以用作转义字符:

  • 双引号 " "
  • 方括号 [ ]
  • 单引号 ' '

Example:  

"Michael said ""It's a beautiful day""."

如果您使用双引号 " " 引用字符串,则必须在字符串内使用的每个双引号旁边添加一个额外的双引号。

该字符串将加载为 Michael said "It's a beautiful day". 通过使用转义字符 ""QlikView 脚本编辑器可以获知哪个双引号属于字符串,哪个双引号表示字符串的结尾。在缩写词 It's 中使用的单引号 ' 不需要转义,因为它不是用于引用字符串的符号。

Example:  

'Michael said: "It''s a beautiful day".'

如果您使用单引号引用此字符串,则必须在字符串内使用的每个单引号旁边添加一个额外的单引号。

该字符串将加载为 Michael said "It's a beautiful day". 用于引用 Michael 说话内容的双引号 " 不需要转义,因为它不是用于引用字符串的符号。

Example:  

[Michael said [It's a "beautiful day]].]

方括号 [ ] 的作用与其他两种引号不同。如果您要将方括号用作转义字符,必须只在右方括号 ] 旁边添加一个额外的方括号,不要在左方括号 [ 旁边添加。

该字符串将加载为 Michael said [It's a "beautiful day]. 仅右方括号 ] 会被转义。字符串中使用的单引号 ' 和双引号 " 不需要转义,因为它们不是用于引用字符串。