# 服务器端扩展语法

此帮助主题概述了Qlik 服务器端扩展语法。

## 脚本函数

有八种脚本函数变体。在加载脚本中，它们的行为应该是相同的，但是在这个场景中通常使用 ScriptEval。

加载脚本使用 LOAD \* EXTENSION 在表中输出方法上操作，并从内部表定义和元数据推断正确的数据类型。

使用这些函数作为图表表达式时，所使用的函数很重要，并且会在请求的结果和性能上产生显著差异。

## ScriptEval 与 ScriptAggr

有两组脚本函数，ScriptEval 和 ScriptAggr：

ScriptEval：聚合超多维数据集之后，指定列中的所有行都发送到 SSE 连接器。预期的响应是一个列。如果返回多个列，则将选择与输入的行数相同的第一列。返回列中的行必须与输入的顺序相同。

ScriptAggr：在聚合超多维数据集之前，将发送超多维数据集中单个维度组的所有行，SSE 将返回单个 1 列 1 行响应。对于每个维度值，都会向 SSE 发送一个请求。虽然有这样的用例，但很少使用这种方法，因为如果使用大量维度值调用 ScriptAggr，会产生性能问题。

## 数据类型

请求有四种变体，它们指定输入和输出数据类型的组合：

* ScriptEval(Script, Field1, [Field n])：在本例中，输入字段必须全部为数字，响应也必须为数字。

* ScriptEvalStr(Script, Field 1, [Field n])：在本例中，输入字段必须都是字符串，响应也必须是字符串。

* ScriptEvalEx(DataTypes, Script, Field 1, [Field n])：在本例中，输入字段可以是字符串也可以是数字，但是第一个参数是数据类型的字符串，响应必须是数字。

* ScriptEvalExStr(DataTypes, Script, Field 1, [Field n])：在本例中，输入字段可以是字符串或数字，但是第一个参数是数据类型的字符串，并且响应必须是字符串。

DataTypes 参数是一个按字段顺序由 S 和 N 字符组成的字符串。

## 实例

示例：

添加两个数字字段的脚本:

ScriptEval('Script',num1,num2)

示例：

连接两个字符串的脚本：

ScriptEvalStr('Script',str1,str2)

示例：

用字符串和数字的混合来预测概率（数字）的脚本：

ScriptEvalEx('SSNN','Script',str1, str2, num1, num2)

示例：

用字符串和数字混合来预测分类（字符串）的脚本：

ScriptEvalExStr('SSNN','Script',str1, str2, num1, num2)