其他函数
REGEXP_REPLACE(字符串, 模式, 替换字符串)
返回给定字符串的副本,其中正则表达式模式被替换字符串取代。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式和替换字符串必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守当前 Unicode 国际化组件 (ICU)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123'
REGEXP_MATCH(字符串, 模式)
如果指定的字符串的子字符串匹配正则表达式模式,则返回 true。此函数可用于文本文件、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Impala 2.3.0(通过 Cloudera Hadoop 数据源)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守当前 Unicode 国际化组件 (ICU)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_MATCH('-([1234].[The.Market])-','\[\s*(\w*\.)(\w*\s*\])')=true
REGEXP_EXTRACT(string, pattern)
返回与正则表达式模式匹配的字符串部分。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守当前 Unicode 国际化组件 (ICU)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_EXTRACT('abc 123', '[a-z]+\s+(\d+)') = '123'
REGEXP_EXTRACT_NTH(string, pattern, index)
返回与正则表达式模式匹配的字符串部分。子字符串匹配到第 n 个捕获组,其中 n 是给定的索引。如果索引为 0,则返回整个字符串。此函数可用于文本文件、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守当前 Unicode 国际化组件 (ICU)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\s+(\d+)', 2) = '123'
Hadoop Hive 的特定函数
注意:只有 PARSE_URL 和 PARSE_URL_QUERY 函数可用于 Cloudera Impala 数据源。
GET_JSON_OBJECT(JSON 字符串, JSON 路径)
根据 JSON 路径返回 JSON 字符串中的 JSON 对象。
PARSE_URL(字符串, url_part)
返回给定 URL 字符串的组成部分(由 url_part 定义)。有效的 url_part 值包括:'HOST'、'PATH'、'QUERY'、'REF'、'PROTOCOL'、'AUTHORITY'、'FILE' 和 'USERINFO'。
示例
PARSE_URL('http://www.tableau.com', 'HOST') = 'www.tableau.com'
PARSE_URL_QUERY(字符串, 密钥)
返回给定 URL 字符串中的指定查询参数的值。查询参数由密钥定义。
示例
PARSE_URL_QUERY('http://www.tableau.com?page=1&cat=4', 'page') = '1'
XPATH_BOOLEAN(XML 字符串, XPath 表达式字符串)
如果 XPath 表达式匹配节点或计算为 true,则返回 true。
示例
XPATH_BOOLEAN('<values> <value id="0">1</value><value id="1">5</value>', 'values/value[@id="1"] = 5') = true
XPATH_DOUBLE(XML 字符串, XPath 表达式字符串)
返回 XPath 表达式的浮点值。
示例
XPATH_DOUBLE('<values><value>1.0</value><value>5.5</value> </values>', 'sum(value/*)') = 6.5
XPATH_FLOAT(XML 字符串, XPath 表达式字符串)
返回 XPath 表达式的浮点值。
示例
XPATH_FLOAT('<values><value>1.0</value><value>5.5</value> </values>','sum(value/*)') = 6.5
XPATH_INT(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_INT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_LONG(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_LONG('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_SHORT(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_SHORT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_STRING(XML 字符串, XPath 表达式字符串)
返回第一个匹配节点的文本。
示例
XPATH_STRING('<sites ><url domain="org">http://www.w3.org</url> <url domain="com">http://www.tableau.com</url></sites>', 'sites/url[@domain="com"]') = 'http://www.tableau.com'
Google BigQuery 的特定函数
DOMAIN(string_url)
在给定 URL 字符串的情况下返回作为字符串的域。
示例
DOMAIN('http://www.google.com:80/index.html') = 'google.com'
GROUP_CONCAT(表达式)
将来自每个记录的值连接为一个由逗号分隔的字符串。此函数在处理字符串时的作用类似于 SUM()。
示例
GROUP_CONCAT(Region) = "Central,East,West"
HOST(string_url)
在给定 URL 字符串的情况下返回作为字符串的主机名。
示例
HOST('http://www.google.com:80/index.html') = 'www.google.com:80'
LOG2(数字)
返回数字的对数底 2。
示例
LOG2(16) = '4.00'
LTRIM_THIS(字符串, 字符串)
返回第一个字符串(移除了在前导位置出现的任何第二个字符串)。
示例
LTRIM_THIS('[-Sales-]','[-') = 'Sales-]'
RTRIM_THIS(字符串, 字符串)
返回第一个字符串(移除了在尾随位置出现的任何第二个字符串)。
示例
RTRIM_THIS('[-Market-]','-]') = '[-Market'
TIMESTAMP_TO_USEC(表达式)
将 TIMESTAMP 数据类型转换为 UNIX 时间戳(以微秒为单位)。
示例
TIMESTAMP_TO_USEC(#2012-10-01 01:02:03#)=1349053323000000
USEC_TO_TIMESTAMP(表达式)
将 UNIX 时间戳(以微秒为单位)转换为 TIMESTAMP 数据类型。
示例
USEC_TO_TIMESTAMP(1349053323000000) = #2012-10-01 01:02:03#
TLD(string_url)
在给定 URL 字符串的情况下返回顶层域以及 URL 中的任何国家/地区域。
示例
TLD('http://www.google.com:80/index.html') = '.com'
TLD('http://www.google.co.uk:80/index.html') = '.co.uk'