内置字符串函数

Nebula Graph支持以下内置字符串函数。

说明:和SQL一样,nGQL的字符索引(位置)从1开始。但是C语言的字符索引是从0开始的。

函数说明
int strcasecmp(string a, string b)比较两个字符串(不区分大小写)。当a=b时,返回0,当a>b是,返回大于0的数,当a<b时,返回小于0的数。
string lower(string a)返回小写形式的字符串。
string toLower(string a)lower()相同。
string upper(string a)返回大写形式的字符串。
string toUpper(string a)upper()相同。
int length(string a)以字节为单位,返回给定字符串的长度。
string trim(string a)删除字符串头部和尾部的空格。
string ltrim(string a)删除字符串头部的空格。
string rtrim(string a)删除字符串尾部的空格。
string left(string a, int count)返回字符串左侧count个字符组成的子字符串。如果count超过字符串a的长度,则返回字符串a。
string right(string a, int count)返回字符串右侧count个字符组成的子字符串。如果count超过字符串a的长度,则返回字符串a。
string lpad(string a, int size, string letters)在字符串a的左侧填充letters字符串,并返回size长度的字符串。
string rpad(string a, int size, string letters)在字符串a的右侧填充letters字符串,并返回size长度的字符串。
string substr(string a, int pos, int count)从字符串a的指定位置pos开始(不包括pos位置的字符),提取右侧的count个字符,组成新的字符串并返回。
string substring(string a, int pos, int count)substr()相同。
string reverse(string)逆序返回字符串。
string replace(string a, string b, string c)将字符串a中的子字符串b替换为字符串c。
list split(string a, string b)在子字符串b处拆分字符串a,返回一个字符串列表。
string toString()将任意数据类型转换为字符串类型。
int hash()获取任意对象的哈希值。

说明:如果参数为NULL,则输出结果是未定义的。

substr()substring()的返回说明

  • 字符索引(位置)从0开始。

  • 如果pos为0,则返回整个字符串。

  • 如果pos大于最大字符索引,则返回空字符串。

  • 如果pos是负数,则返回BAD_DATA

  • 如果省略count,则返回从pos位置开始到字符串末尾的子字符串。

  • 如果count为0,则返回空字符串。

  • 使用NULL作为任何参数会出现错误

OpenCypher兼容性

  • 在openCypher中,如果字符串anull,会返回null
  • 在openCypher中,如果pos为0,In openCypher, if pos is 0, 会返回从第一个字符开始、count个字符的子字符串。
  • 在openCypher中,如果poscountnull或负整数,会出现错误。