Phoenix 常用函数


Phoenix 官方函数说明地址:https://phoenix.apache.org/language/functions.html

1. 数字函数

1.1 ROUND

将数字或时间戳表达式四舍五入到指定的最接近的比例或时间单位。

如果表达式是数字类型,则第二个参数是用于四舍五入的数字的刻度,默认为零。

如果表达式是日期/时间类型,则第二个参数可以是列出的时间单位之一,以确定日期/时间的剩余精度。MILLISECONDS如果不存在,则使用默认值。乘数仅适用于日期/时间类型,用于舍入为时间单位的倍数(即10分钟),如果未指定,则默认为1。此方法返回与其第一个参数相同的类型。

例:

ROUND(number)

ROUND(number, 2)

ROUND(timestamp)

ROUND(time, 'HOUR')

ROUND(date, 'MINUTE', 30)
select ROUND(1.6356);
select ROUND(1.6356,2);

  1. CEIL

相同ROUND,除了它舍入任何分数值直到下一个偶数倍。

例:

CEIL(number, 3)

CEIL(2.34)

CEIL(timestamp, 'SECOND', 30)

CEIL(date, 'DAY', 7)
SELECT     CEIL(5.123456, 3);

select     ROUND(TO_TIME('2005-10-01 14:03:22.559'), 'HOUR');

1.2 FLOOR

相同ROUND,除了它将任何小数值向下舍入为以前的偶数倍。

例:

FLOOR(timestamp)

FLOOR(date, 'DAY', 7)
select     FLOOR(TO_date('2005-10-01 14:03:22.559'), 'DAY', 7);

1.3 TRUNC

与…一样 FLOOR

例:

TRUNC(timestamp, 'SECOND', 30)

TRUNC(date, 'DAY', 7)
select TRUNC(TO_date('2005-10-01 14:03:22.559'), 'DAY', 7);

1.4 TO_NUMBER

将字符串或日期/时间类型格式化为数字,可选择接受格式字符串。有关格式的详细信息,请参阅java.text.DecimalFormat。对于日期,时间和timeStamp项,结果是从纪元开始的时间(以毫秒为单位)。此方法返回一个十进制数。

例:

TO_NUMBER('$123.33', '\u00A4###.##')

1.5 RAND

在0.0(包含)和1.0(不包含)之间产生随机,均匀分布的双精度值的函数。如果提供了种子,则对于同一行的每个调用,返回的值都是相同的。如果未提供种子,则返回的值对于每个调用是不同的。种子必须是常数。

例:

RAND()

RAND(5)
select RAND(5);

2. 字符串函数

2.1 SUBSTR

返回从基于1的位置开始的字符串的子字符串。如果使用零,则位置为零。如果起始索引为负,则起始索引相对于字符串的结尾。长度是可选的,如果未提供,则将返回字符串的其余部分。

例:

SUBSTR('[Hello]', 2, 5)

SUBSTR('Hello World', -5)
SELECT     SUBSTR('ABC',1,2);

2.2 INSTR

返回第一个参数中第二个参数的初始出现的基于1的位置。如果第二个参数不包含在第一个参数中,则返回零。

例:

INSTR('Hello World', 'World')

INSTR('Simon says', 'mon')

INSTR('Peace on earth', 'war')
select     INSTR('Hello World', 'World');

2.3 TRIM

从输入字符串中删除前导和尾随空格。

例:

TRIM('  Hello  ')
SELECT TRIM('  ABC      ');

2.4 LTRIM

从输入字符串中删除前导空格。

例:

LTRIM('  Hello')
SELECT LTRIM('  ABC      ');

2.5 RTRIM

从输入字符串中删除结尾空格。

例:

RTRIM('Hello  ')
SELECT RTRIM('  ABC      ');

2.6 LPAD

使用特定的填充字符(默认空格)填充字符串表达式,直到长度参数。

例:

LPAD('John',30)
select     LPAD('John',30);

2.7 LENGTH

返回字符串的长度(以字符为单位)。

例:

LENGTH('Hello')
select     LENGTH('abc');

2.8 REGEXP_SUBSTR

通过从基于1的位置的偏移应用正则表达式start返回字符串的子字符串。就像与SUBSTR,如果开始索引是负数,那么它是相对于字符串的结尾。如果未指定,则开始索引默认为1。

例:

REGEXP_SUBSTR('na1-appsrv35-sj35', '[^-]+') evaluates to 'na1'
select     REGEXP_SUBSTR('a1b2c3','\d');

2.9 REGEXP_REPLACE

通过应用正则表达式并使用替换字符串替换匹配项来返回字符串。如果未指定替换字符串,它将默认为空字符串。

例:

REGEXP_REPLACE('abc123ABC', '[0-9]+', '#') evaluates to 'abc#ABC'
select     REGEXP_REPLACE('a1b2c3','[0-9]','-');

2.10 REGEXP_SPLIT

VARCHAR ARRAY使用正则表达式将字符串拆分成一个。如果在正则表达式中具有特殊含义的字符将用作模式字符串中的常规定界符,则必须使用反斜线对其进行转义。

例:

REGEXP_SPLIT('ONE,TWO,THREE', ',') evaluates to ARRAY['ONE', 'TWO', 'THREE']

REGEXP_SPLIT('ONE!#TWO#,!THREE', '[,!#]+') evaluates to ARRAY['ONE', 'TWO', 'THREE']
select     REGEXP_SPLIT('ONE,TWO,THREE', ',');

2.11 UPPER

返回字符串参数的大写字符串。

例:

UPPER('Hello')
SELECT     UPPER('AaBbCcDd');

2.12 LOWER

返回字符串参数的小写字符串。

例:

LOWER('HELLO')
SELECT     LOWER('AaBbCcDd');

2.13 REVERSE

返回字符串参数的反转字符串。

例:

REVERSE('Hello')
SELECT     REVERSE('AaBbCcDd');

2.14 TO_CHAR

将日期,时间,时间戳或数字格式化为字符串。默认日期格式为yyyy-MM-dd HH:mm:ss,默认数字格式为#,##0.###。有关详细信息,请参阅java.text.SimpleDateFormat日期/时间值和java.text.DecimalFormat数字。此方法返回一个字符串。

例:

TO_CHAR(myDate, '2001-02-03 04:05:06')

TO_CHAR(myDecimal, '#,##0.###')

3. 时间函数

3.1 TO_DATE

解析字符串并返回日期。请注意,返回的日期在内部表示为自java纪元以来的毫秒数。最重要的格式字符是:y年,M月,d天,H小时,m分钟,s秒。默认格式字符串为yyyy-MM-dd HH:mm:ss。有关格式的详细信息,请参阅java.text.SimpleDateFormat。默认情况下,GMT将在解析日期时用作时区。然而,也可以提供时区id。这是时区ID,例如“ GMT+1”。如果提供“local”作为时区id,则本地时区将用于解析。配置设置phoenix.query.dateFormatTimeZone也可以设置为时区ID,这将导致使用配置的GMT时区ID覆盖默认设置。DATE请参阅数据类型参考指南,了解Apache Phoenix当前如何定义数据类型。此外,Phoenix支持ANSI SQL date类似于单参数TO_DATE函数的字面量。

例:

TO_DATE('Sat, 3 Feb 2001 03:05:06 GMT', 'EEE, d MMM yyyy HH:mm:ss z')

TO_DATE('1970-01-01', 'yyyy-MM-dd', 'GMT+1')
select TO_DATE('2017-01-01',     'yyyy-MM-dd', 'GMT+1');

3.2 TO_TIME

将给定的字符串转换为TIME实例。当不提供日期格式时,它默认为yyyy-MM-dd HH:mm:ss.SSS或由配置属性定义的任何内容phoenix.query.dateFormat。配置设置phoenix.query.dateFormatTimeZone也可以设置为时区ID,这将导致使用配置的GMT时区ID覆盖默认设置。此外,Phoenix支持ANSI SQL time类似于单参数TO_TIME函数的字面量。

例:

TO_TIME('2005-10-01 14:03:22.559')

TO_TIME('1970-01-01', 'yyyy-MM-dd', 'GMT+1')
select     TO_TIME('2005-10-01 14:03:22.559');

3.3 TO_TIMESTAMP

将给定的字符串转换为TIMESTAMP实例。当不提供日期格式时,它默认为yyyy-MM-dd HH:mm:ss.SSS或由配置属性定义的任何内容phoenix.query.dateFormat。配置设置phoenix.query.dateFormatTimeZone也可以设置为时区ID,这将导致使用配置的GMT时区ID覆盖默认设置。此外,Phoenix支持ANSI SQL timestamp类似于单参数TO_TIMESTAMP函数的字面量。

例:

TO_TIMESTAMP('2005-10-01 14:03:22.559')

TO_TIMESTAMP('1970-01-01', 'yyyy-MM-dd', 'GMT+1')
select     TO_TIMESTAMP('2005-10-01 14:03:22.559');

3.4 CURRENT_TIME

与CURRENT_DATE()相同,except返回类型的值TIME。在任一情况下,底层表示是时间段时间作为长值。请参阅数据类型参考指南,了解Apache Phoenix当前如何定义TIME数据类型。

例:

CURRENT_TIME()
select     CURRENT_TIME();

3.5 CONVERT_TZ

将日期/时间从一个时区转换为另一个时区,返回移动的日期/时间值。

例:

CONVERT_TZ(myDate, 'UTC', 'Europe/Prague')
select     CONVERT_TZ(TO_TIME('2005-10-01 14:03:22.559'), 'UTC', 'Europe/Prague');

3.6 TIMEZONE_OFFSET

返回特定日期/时间的时区(以分钟为单位)的偏移(以分钟为单位)。

例:

TIMEZONE_OFFSET('Indian/Cocos', myDate)
select     TIMEZONE_OFFSET('Indian/Cocos', TO_TIME('2005-10-01 14:03:22.559'));

3.7 NOW

返回当前日期,根据拥有正在查询的表的元数据的区域服务器上的当前时间,在查询执行开始时绑定。

例:

NOW()
select NOW();

3.8 YEAR

返回指定日期的年份。

例:

YEAR(TO_DATE('2015-6-05'))
select     YEAR(TO_DATE('2015-6-05'));

3.9 MONTH

返回指定日期的月。

例:

MONTH(TO_TIMESTAMP('2015-6-05'))
select MONTH(TO_TIMESTAMP('2015-6-05'));

3.10 WEEK

返回指定日期的星期。

例:

WEEK(TO_TIME('2010-6-15'))
select WEEK(TO_TIME('2010-6-15'));

3.11 DAYOFMONTH

返回指定日期的月份中的某一天。

例:

DAYOFMONTH(TO_DATE('2004-01-18 10:00:10'))
select DAYOFMONTH(TO_DATE('2004-01-18 10:00:10'));

3.12 HOUR

返回指定日期的小时。

例:

HOUR(TO_TIMESTAMP('2015-6-05'))
select     HOUR(TO_TIMESTAMP('2015-6-05 12:12:12'));

3.13 MINUTE

返回指定日期的分钟。

例:

MINUTE(TO_TIME('2015-6-05'))
select MINUTE(TO_TIMESTAMP('2015-6-05     12:12:12'));

3.14 SECOND

返回指定日期的第二个。

例:

SECOND(TO_DATE('2015-6-05'))
select SECOND(TO_TIMESTAMP('2015-6-05 12:13:14'));

4. 聚合函数

4.1AVG

平均值(平均值)。如果未选择行,则结果为NULL。仅允许在select语句中使用聚合。返回的值与参数的数据类型相同。

例:

AVG()
select avg(CORE)     from WEB_STAT;

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select avg(CORE) f rom 、 8 STAT;  217 · €769

4.2 COUNT

所有行的计数,或非空值的计数。这个方法返回一个long。当DISTINCT使用时,它只计算不同的值。如果未选择任何行,则结果为0.仅在select语句中允许汇总。

例:

COUNT(*)
select count(CORE)     from WEB_STAT;

: select count(l) from WEB STAT;  COW'T(I) I  39  1 row selected (€.€31 seconds)

4.3 MAX

最高值。如果未选择行,则结果为NULL。仅允许在select语句中使用聚合。返回的值与参数的数据类型相同。

例:

MAX(NAME)
select max(CORE)     from WEB_STAT;

: select max(CORE) from WEB STAT;  MAX(USAGE.CORE)  1235  1 row selected (€.06 seconds)

4.4 MIN

MIN ( term )

最低值。如果未选择行,则结果为NULL。仅允许在select语句中使用聚合。返回的值与参数的数据类型相同。

例:

MIN(NAME)
select min(CORE) from     WEB_STAT;

: select min(CORE) from WEB STAT;  MIN (USAGE. CORE)  3

4.5 SUM

SUM ( numericTerm )

所有值的总和。如果未选择行,则结果为NULL。仅允许在select语句中使用聚合。返回的值与参数的数据类型相同。

例:

SUM(X)
 select sum(CORE)     from WEB_STAT;

: select sum(CORE) from WEB STAT;  SIN (USAGE. CORE)  8466  1 row selected (6.038 seconds)

4.6 PERCENTILE_CONT

列中值的第n个百分位数。百分点值可以在0和1之间,包括0和1。仅允许在select语句中使用聚合。返回值为十进制数据类型。

例:

PERCENTILE_CONT( 0.9 ) WITHIN GROUP (ORDER BY X ASC)
select     PERCENTILE_CONT( 0.9 ) WITHIN GROUP (ORDER BY CORE ASC) from WEB_STAT;

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select PERCENTILE C 犴 { € · g } WITHIN GR 〔 还 JP { 〔 + 工 庀 R BY C 〔 + ASC) from 、 8 STAT,  true, 8.9)  PERCENTILE  582 。 ggg7253417g5875  rO 谣 selected (€.€3g seconds)

4.7 PERCENTILE_DISC

PERCENTILE_DISC是假定离散分布模型的逆分布函数。它需要百分点值和排序规范,并从集合中返回一个元素。在计算中忽略空值。

例:

PERCENTILE_DISC( 0.9 ) WITHIN GROUP (ORDER BY X DESC)
select     PERCENTILE_DISC( 0.9 ) WITHIN GROUP (ORDER BY CORE DESC) from WEB_STAT;

计算机生成了可选文字: 9 : jdbc : phoenix : slave1,slave2,slave3 : 2181>  false, 伍 g ,  PERCENTILE  1 ro selected { € · 1 seconds)  select PERCENTILE DISC( € · g } WITHIN GROI 」 P (ORDER BY CORE DESC) f rom 、 8 STAT;

4.8 PERCENT_RANK

如果插入列中,则假设值的百分位数。仅允许在select语句中使用聚合。返回值为十进制数据类型。

例:

PERCENT_RANK( 100 ) WITHIN GROUP (ORDER BY X ASC)
select PERCENT_RANK(     100 ) WITHIN GROUP (ORDER BY CORE ASC) from WEB_STAT;

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select PERCENT RANK( 199 } WITHIN GROI 」 P (ORDER BY CORE ASC) f rom 、 8 STAT;  PERCENT true, lee) 《  》 € · 5541e25g9984e75g27734375  ro selected { € · 123 seconds)

4.9 FIRST_VALUE

每个不同组中的第一个值根据ORDER BY规范排序。

例:

FIRST_VALUE( name ) WITHIN GROUP (ORDER BY salary DESC)
select FIRST_VALUE(     CORE ) WITHIN GROUP (ORDER BY CORE DESC) from WEB_STAT;

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select FIRST VAI_IJE( C 〔 + } WITHIN GR 〔 还 JP { 〔 + 工 庀 R BY C 〔 + DESC) from 、 8 STAT;  nuU(USAGE.COE  false,  1235  rO 评 selected (€.@62 seconds)

4.10 LAST_VALUE

每个不同组中的最后一个值根据ORDER BY规范排序。

例:

LAST_VALUE( name ) WITHIN GROUP (ORDER BY salary DESC)
select LAST_VALUE(     CORE ) WITHIN GROUP (ORDER BY CORE DESC) from WEB_STAT;

计算机生成了可选文字: 9 : jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select LAST VALUE { CORE } WITHIN GROI 」 P (ORDER BY CORE DESC) f rom 、 8 STAT;  nuU(USAGE.COE  false,  1 ro selected (€.€34 seconds)

4.11 NTH_VALUE

每个不同组中的第n个值根据ORDER BY规范排序。

例:

NTH_VALUE( name, 2 ) WITHIN GROUP (ORDER BY salary DESC)
select NTH_VALUE(     CORE, 2 ) WITHIN GROUP (ORDER BY CORE DESC) from WEB_STAT;

计算机生成了可选文字: 9 : jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select NTH VAI_IJE( C 〔 + , 2 ) WITHIN GROIJP { 〔 + 工 庀 R BY C 〔 + DESC) from 、 8 STAT,  nuU(USAGE.COE  false, 2 ,  1 rO 谣 selected { € · 195 seconds)

4.12 STDDEV_POP

所有值的总体标准偏差。仅允许在select语句中使用聚合。返回值为十进制数据类型。

例:

STDDEV_POP( X )
select     STDDEV_POP( CORE ) from WEB_STAT;

计算机生成了可选文字: € :  jdbc : phoenix : slave1,slave2,slave3 : 2181> select STDOE V POP( C 〔 + } from 8 STAT;  STDDEV  275 。 g91e77e8g588g53g471885555975311b598  selected { € 55 seconds)

4.13 STDDEV_SAMP

所有值的样本标准偏差。仅允许在select语句中使用聚合。返回值为十进制数据类型。

例:

STDDEV_SAMP( X )
select     STDDEV_SAMP( CORE ) from WEB_STAT;

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select STDDE V S { CORE } f rom 、 8 STAT,  STDDEV  279 。 5977891g533517e774884521g512121582  selected (€.€46 seconds)

5. 数组函数

5.1 ARRAY_ELEM

使用数组下标符号访问数组元素的替代方法。返回在给定位置的数组中的元素。位置是基于1的。

例:

ARRAY_ELEM(my_array_col, 5)

ARRAY_ELEM(ARRAY[1,2,3], 1)
select     ARRAY_ELEM(ARRAY[1,2,3], 3);

0: select ARRAY 3);  131  131  1 row selected (€.@€2 seconds)

5.2 ARRAY_LENGTH

返回数组的当前长度。

例:

ARRAY_LENGTH(my_array_col)

ARRAY_LENGTH(ARRAY[1,2,3])
select     ARRAY_LENGTH(ARRAY[1,2,3]);

0: select ARRAY  131  131  1 row selected (€.@€2 seconds)

5.3 ARRAY_APPEND

将给定元素追加到数组的末尾。

例:

ARRAY_APPEND(my_array_col, my_element_col)

ARRAY_APPEND(ARRAY[1,2,3], 4)  得到数组>> ARRAY[1,2,3,4])
select     ARRAY_APPEND(ARRAY[1,2,3], 4);

: select ARRAY 4)

5.4 ARRAY_PREPEND

将给定元素追加到数组的开头。

例:

ARRAY_PREPEND(my_element_col, my_array_col)

ARRAY_PREPEND(0, ARRAY[1,2,3]) 得到数组>> ARRAY[0,1,2,3]
select ARRAY_PREPEND(0, ARRAY[1,2,3]) ;

5.5 ARRAY_CAT

连接输入数组并返回结果。

例:

ARRAY_CAT(my_array_col1, my_array_col2)

ARRAY_CAT(ARRAY[1,2], ARRAY[3,4])  得到数组>> ARRAY[1,2,3,4]
select     ARRAY_CAT(ARRAY[1,2], ARRAY[3,4]);

5.6 ARRAY_FILL

返回使用提供的值和长度初始化的数组。

例:

ARRAY_FILL(my_element_col, my_length_col)

ARRAY_FILL(1, 3) 得到数组>> ARRAY[1,1,1]
select ARRAY_FILL(1, 3);

5.7 ARRAY_TO_STRING

使用提供的定界符和可选的空字符串连接数组元素,并返回结果字符串。如果省略了nullString参数,或者NULL简单地跳过数组中的任何空元素,并且不在输出字符串中表示。

例:

ARRAY_TO_STRING(my_array_col, my_delimiter_col, my_null_string_col)

ARRAY_TO_STRING(ARRAY['a','b','c'], ',') evaluates to 'a,b,c'

ARRAY_TO_STRING(ARRAY['a','b',null,'c'], ',') evaluates to 'a,b,c'

ARRAY_TO_STRING(ARRAY['a','b',null,'c'], ',', 'NULL') evaluates to 'a,b,NULL,c'
select     ARRAY_TO_STRING(ARRAY['a','b',null,'c'], ',', 'NULL');

•2181>  select  ARRAY TO  a b • ,nuU  , 'NULL');  1 row selected  (€.@€3 seconds)

5.8 ANY

用于比较表达式的右侧,以测试任何数组元素是否满足左侧的比较表达式。

例:

1 = ANY(my_array)

10 > ANY(my_array)
select 10 >     ANY(ARRAY[1,2,3]) as result;

: select 16 > ANY as result;  RESULT I  I true  1 row selected (€.@€2 seconds)

select 10 >     ANY(ARRAY[11,21,13]) as result;

0: select 16 > ANY (ARRAY as result;  RESULT I  I false I

5.9 ALL

用于比较表达式的右侧,以测试所有数组元素是否满足左侧的比较表达式。的数组。

例:

1 = ALL(my_array)

10 > ALL(my_array)
select 10 >     ALL(ARRAY[1,2,3]) as result;

: select 16 > ALL as result;  RESULT I  I true  1 row selected (€.€13 seconds)

select 10 >     ALL(ARRAY[12,2,3,9]) as result;

: select 16 > ALL (ARRAY as result;  RESULT I  1 row selected (€.@€3 seconds)

6. 数学函数

6.1 SIGN

返回给定数字表达式的signum函数INTEGER。如果给定的数字表达式为负,返回值为-1; 0,如果给定的数字表达式为零; 如果给定的数值表达式为正,则为1。

例:

SIGN(number)

SIGN(1.1)

SIGN(-1)
select SIGN(24);

: select SIGN(24);  Ill  1 row selected (€.@€1 seconds)

6.2 ABS

返回保持相同类型的给定数值表达式的绝对值。

例:

ABS(number)

ABS(1.1)

ABS(-1)
select ;

: select ABS(-I);  Ill  1 row selected (€.@€2 seconds)

6.3 SQRT

将给定非负数值表达式的正确倒圆的平方根返回为a DOUBLE。

例:

SQRT(number)

SQRT(1.1)
select SQRT(1.1);

: select SQRT(I.I);  1.0488888481781516  | 1.€488€884817€1516  1 row selected (€.@€2  seconds)

6.4 CBRT

将给定数值表达式的多维数据集根返回为DOUBLE。

例:

CBRT(number)

CBRT(1.1)

CBRT(-1)
select CBRT(-1);

O: select CBRT(-I);  1 row selected (€.@€3 seconds)

6.5 EXP

返回欧拉数e增加到给定数值的权力为a DOUBLE。

例:

EXP(number)

EXP(1.1)

EXP(-1)
select EXP(-1);

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select EXP(-I);  . 3b787g44117144233  》 € · 35787g44117144233  ro selected (€.@€2  seconds)

6.6 POWER

返回第一个参数的值为第二个参数的幂的a DOUBLE。

例:

POWER(number, number)

POWER(3, 2)

POWER(2, 3)
select POWER(2,     3);

计算机生成了可选文字: 9 : jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select PC*R(), 3 } ;  1 rO 谣 selected (€.@€2 seconds)

6.7 LN

返回给定正表达式的自然对数(基e)DOUBLE。

例:

LN(number)

LN(3)

LN(2)
select LN(2);

计算机生成了可选文字: jdbc : phoenix : slave1,slave2,slave3 : 2181> select LN(2);  e 。 bg314718e55gg453  》 € · bg314718955gg453  ro selected (€.0€1 seconds)

6.8 LOG

返回在第二个参数的底部计算的第一个参数的对数为a DOUBLE。如果省略,基数为10将用于第二个参数。

例:

LOG(3, 2)

LOG(2, 3)

LOG(2)
select LOG(2);

计算机生成了可选文字: jdbc : phoenix : slave1,sIave2,sIave3 : 2181> select LO 引 2 } ;  。 38182999566398114  》 € · 391e2ggg5553g8114  rO 谣 selected { 9 · 991  seconds)

7. 其他函数

7.1 MD5

计算MD5参数的哈希值,将结果作为BINARY(16)返回。

例:

MD5(my_column)
select MD5(123) as result;

7.2 INVERT

反转参数的位。返回类型将与参数相同。

例:

INVERT(my_column)
select     INVERT(123) as result;

: select INVERT(123) as result;  RESULT I  -124 |  1 row selected (€.@€2 seconds)

7.3 ENCODE

根据提供的编码格式编码表达式,并返回结果字符串。对于’ BASE62’,将给定的基数10数字转换为基数62数字,并返回一个表示数字的字符串。

例:

ENCODE(myNumber, 'BASE62')
select     ENCODE(123456, 'BASE62') as result;

: select ENC00E(123456,  RESULT I  W7E  1 row selected (€.62 seconds)  'BASE62') as result;

7.4 DECODE

根据提供的编码格式解码表达式,并将结果值返回为VARBINARY。对于’ HEX’,将十六进制字符串表达式转换为其二进制表示形式,提供通过控制台输入二进制数据的机制。

例:

DECODE('000000008512af277ffffff8', 'HEX')
select     DECODE('000000008512af277ffffff8', 'HEX') as result;

7.5 COALESCE

返回第一个参数的值(如果不为空)和第二个参数的值。用于确保UPSERT SELECT命令中的列将求值为非空值。

例:

COALESCE(last_update_date, CURRENT_DATE())
select     COALESCE('b', 'a');

: select COALESCE(  1 row  selected (€.@€1 seconds)

7.6 GET_BIT

在给定的二进制值中检索给定索引处的位。

例:

GET_BIT(CAST('FFFF' as BINARY), 1)
Select GET_BIT(CAST('FFFF' as BINARY), 1);

: select GET 'FFFF'  GET BIT(TO BINARY('FFFF'), 1)  selected (€.@€4 seconds)  1 row  as BINARY) ,

7.7 GET_BYTE

在给定的二进制值中检索给定索引处的字节。

例:

GET_BYTE(CAST('FFFF' as BINARY), 1)
select     GET_BYTE(CAST('FFFF' as BINARY), 1);

select GET 'FFFF'  1)  as BINARY) ,  1);  7€  1 row  GET BYTE(TO BINARY('FFFF'),  selected (€.@€2  seconds)

7.8 OCTET_LENGTH

返回二进制值中的字节数。

例:

OCTET_LENGTH(NAME)

7.9 SET_BIT

将二进制值中给定索引处的位替换为提供的newValue。

例:

SET_BIT(CAST('FFFF' as BINARY), 1, 61)
SELECT     SET_BIT(CAST('FFFF' as BINARY), 1, 61) AS RESULT;

7.10 SET_BYTE

将二进制值中给定索引处的字节替换为提供的newValue。

例:

SET_BYTE(CAST('FFFF' as BINARY), 1, 61)
SELECT     SET_BYTE(CAST('FFFF' as BINARY), 1, 61) AS RESULT;


文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
 上一篇
Phoenix 部署与连接HBase Phoenix 部署与连接HBase
Phoenix 介绍Phoenix 官网:https://phoenix.apache.org/ Phoenix 源码: https://github.com/apache/phoenix HBase是一个 NoSQL 数据库,可存储大量非
2017-03-02
下一篇 
Hive 基础教程 Hive 基础教程
1. 什么是 HIVE Hive 是建立在Hadoop 上的数据参考基础架构,它提供了一系列的工具,可以来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。 Hive定义了简单的类SQL查
2017-02-03
  目录