admin 管理员组

文章数量: 887044


2024年1月18日发(作者:网络播放器)

1.内置运算符

1.1关系运算符

运算符

A = B

A == B

A <> B

类型

所有原始类型

所有原始类型

说明

如果A与B相等,返回TRUE,否则返回FALSE

失败,因为无效的语法。 SQL使用”=”,不使用”==”。

如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

如果A小于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

如果A小于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

如果A大于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

如果A大于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

如果A值为”NULL”,返回TRUE,否则返回FALSE

如果A值不为”NULL”,返回TRUE,否则返回FALSE

如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过sql进行匹A LIKE B

字符串

配,如果相符返回TRUE,不符返回FALSE。B字符串中 的”_”代表任一字符,”%”则代表多个任意字符。例如: („foobar‟ like „foo‟)返回FALSE,( „foobar‟ like „foo_ _ _‟或者 „foobar‟ like „foo%‟)则返回TURE

如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过java进行A RLIKE B

字符串

匹配,如果相符返回TRUE,不符返回FALSE。例如:( „foobar‟ rlike „foo‟)返回FALSE,(‟foobar‟ rlike „^f.*r$‟ )返回TRUE。

A REGEXP B

字符串

1.2算术运算符

运算符

A + B

A – B

A * B

A / B

A % B

A & B

类型

所有数字类型

所有数字类型

所有数字类型

所有数字类型

所有数字类型

所有数字类型

说明

A和B相加。结果的与操作数值有共同类型。例如每一个整数是一个浮点数,浮点数包含整数。所以,一个浮点数和一个整数相加结果也是一个浮点数。

A和B相减。结果的与操作数值有共同类型。

A和B相乘,结果的与操作数值有共同类型。需要说明的是,如果乘法造成溢出,将选择更高的类型。

A和B相除,结果是一个double(双精度)类型的结果。

A除以B余数与操作数值有共同类型。

运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。两个表达式与RLIKE相同。

A < B

所有原始类型

A <= B

所有原始类型

A > B

所有原始类型

A >= B

所有原始类型

A IS NULL

所有类型

A IS NOT

NULL

所有类型

的一位均为1时,则结果的该位为 1。否则,结果的该位为 0。

A|B

所有数字类型

运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。只要任一表达式的一位为 1,则结果的该位为 1。否则,结果的该位为 0。

运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。当且仅当A ^ B

所有数字类型

只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为

0。

~A

所有数字类型 对一个表达式执行按位”非”(取反)。

1.3逻辑运算符

运算符

A AND B

A && B

A OR B

A | B

NOT A

! A

类型

布尔值

布尔值

布尔值

布尔值

布尔值

布尔值

说明

A和B同时正确时,返回TRUE,否则FALSE。如果A或B值为NULL,返回NULL。

与”A AND B”相同

A或B正确,或两者同时正确返返回TRUE,否则FALSE。如果A和B值同时为NULL,返回NULL。

与”A OR B”相同

如果A为NULL或错误的时候返回TURE,否则返回FALSE。

与”NOT A”相同

1.4复杂类型函数

函数

map

类型 说明

(key1, value1, key2, value2, …)

通过指定的键/值对,创建一个map。

通过指定的字段值,创建一个结构。结构字段名称将COL1,COL2,…

通过指定的元素,创建一个数组。

struct

(val1, val2, val3, …)

array

(val1, val2, …)

1.5对复杂类型函数操作

函数

A[n]

类型

A是一个数组,n为int型

说明

返回数组A的第n个元素,第一个元素的索引为0。如果A数组为['foo','bar'],则A[0]返回‟foo‟和A[1]返回”bar”。

返回关键值对应的值,例如mapM为 {„f‟ -> „foo‟, „b‟ -> „bar‟,

„all‟ -> „foobar‟},则M['all'] 返回‟foobar‟。

返回结构x字符串在结构S中的存储位置。如 foobar {int foo,

int bar} 的领域中存储的整数。

M[key]

M是Map,关键K型

S.x

S为struct

2.内置函数

2.1数学函数

返回类型

BIGINT

函数

round(double a)

说明

四舍五入

DOUBLE round(double a, int d)

小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26

对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。

a),

将参数向上舍入为最接近的整数。例如ceil(21.2),返回23.

返回大于或等于0且小于1的平均分布随机数(依重新计算而变)

返回e的n次方

返回给定数值的自然对数

返回给定数值的以10为底自然对数

返回给定数值的以2为底自然对数

BIGINT floor(double a)

ceil(double

ceiling(double a)

rand(), rand(int seed)

exp(double a)

ln(double a)

log10(double a)

log2(double a)

BIGINT

double

double

double

double

double

double

double

double

log(double base, double a)

返回给定底数及指数返回自然对数

pow(double a, double p)

power(double a, double p)

sqrt(double a)

返回某数的乘幂

返回数值的平方根

返回二进制格式,参考:string bin(BIGINT a) /doc/refman/5.0/en/#function_hex

将整数或字符转换为十六进制格式。参考:string hex(BIGINT a) hex(string a) /doc/refman/5.0/en/#function_hex

string unhex(string a)

十六进制字符转换由数字表示的字符。

将指定数值,由原来的度量体系转换为指定的试题体系。string

conv(BIGINT num, int

例如CONV(„a‟,16,2),返回。参考:‟1010′

from_base, int to_base) /doc/refman/5.0/en/#function_conv

double

int double

double

double

double

double

abs(double a)

pmod(int a, int b)

取绝对值

返回a除b的余数的绝对值

返回给定角度的正弦值

返回x的反正弦,即是X。如果X是在-1到1的正弦值,返回NULL。

返回余弦

返回X的反余弦,即余弦是X,,如果-1<= A <= 1,否则返回null.

a)

返回A的值,例如positive(2),返回2。

pmod(double a, double b)

sin(double a)

asin(double a)

cos(double a)

acos(double a)

int double positive(int

positive(double a)

int double

negative(int

negative(double a)

a)

返回A的相反数,例如negative(2),返回-2。

2.2收集函数

返回类型

int

int

函数 说明

size(Map)

返回的map类型的元素的数量

size(Array)

返回数组类型的元素数量

2.3类型转换函数

返回类型 函数

指“type”

cast(expr

)

说明

as

类型转换。例如将字符”1″转换为整数:cast(‟1′ as bigint),如果转换失败返回NULL。

2.4日期函数

返回类型

函数 说明

UNIX_TIMESTAMP参数表示返回一个值‟YYYY- MM – DD

string

from_unixtime(bigint

unixtime[, string format])

HH:MM:SS‟或格式,这取决于是否是在一个字符串或数字语境中使用的功能。该值表示在当前的时区。

bigint unix_timestamp()

unix_timestamp(string

date)

如果不带参数的调用,返回一个Unix时间戳(从‟1970- 01

– 0100:00:00′到现在的UTC秒数)为无符号整数。

指定日期参数调用UNIX_TIMESTAMP(),它返回参数值‟1970- 01 – 0100:00:00′到指定日期的秒数。

指定时间输入格式,返回到1970年秒数:bigint

unix_timestamp(string

date, string pattern)

unix_timestamp(‟2009-03-20′,

1237532400

string to_date(string timestamp)

string to_dates(string date)

int year(string date)

返回时间中的年月日: to_date(“1970-01-01 00:00:00″)

= “1970-01-01″

给定一个日期date,返回一个天数(0年以来的天数)

返回指定时间的年份,范围在1000到9999,或为”零”日期的0。

返回指定时间的月份,范围为1至12月,或0一个月的一部分,如‟0000-00-00′或‟2008-00-00′的日期。

date)

返回指定时间的日期

参„yyyy-MM-dd‟)

考=

:bigint

/j2se/1.4.2/docs/api/java/text/Siint month(string date)

day(string

dayofmonth(date)

int

int

int

int

int

int

hour(string date)

minute(string date)

second(string date)

weekofyear(string date)

datediff(string

string startdate)

date_add(string startdate,

int days)

date_sub(string startdate,

int days)

enddate,

返回指定时间的小时,范围为0到23。

返回指定时间的分钟,范围为0到59。

返回指定时间的秒,范围为0到59。

返回指定日期所在一年中的星期号,范围为0到53。

两个时间参数的日期之差。

int

给定时间,在此基础上加上指定的时间段。

int

给定时间,在此基础上减去指定的时间段。

2.5条件函数

返回类型

T

函数 说明

if(boolean testCondition, T valueTrue,

判断是否满足条件,如果满足返回一个值,如果不T valueFalseOrNull)

COALESCE(T v1, T v2, …)

满足则返回另一个值。

返回一组数据中,第一个不为NULL的值,如果均为NULL,返回NULL。

T

T

CASE a WHEN b THEN c [WHEN d

当a=b时,返回c;当a=d时,返回e,否则返回THEN e]* [ELSE f] END

CASE WHEN a THEN b [WHEN c THEN

d]* [ELSE e] END

f。

当值为a时返回b,当值为c时返回d。否则返回e。

T

2.6字符函数

返回类型

int

string

string

函数

length(string A)

reverse(string A)

concat(string A, string B…)

说明

返回字符串的长度

返回倒序字符串

连接多个字符串,合并为一个字符串,可以接受任意数量的输入字符串

string

concat_ws(string SEP, string A,

链接多个字符串,字符串之间以指定的分隔符分string B…)

substr(string A, int start)

开。

从文本字符串中指定的起始位置后的字符。

string

substring(string A, int start)

substr(string A, int start, int len)

string substring(string A, int start, int

从文本字符串中指定的位置指定长度的字符。

len)

string upper(string A) ucase(string A)

将文本字符串转换成字母全部大写形式

string

string

string

string

string

lower(string A) lcase(string A)

trim(string A)

ltrim(string A)

rtrim(string A)

regexp_replace(string A, string

B, string C)

regexp_extract(string subject,

string pattern, int index)

将文本字符串转换成字母全部小写形式

删除字符串两端的空格,字符之间的空格保留

删除字符串左边的空格,其他的空格保留

删除字符串右边的空格,其他的空格保留

字符串A中的B字符被C字符替代

通过下标返回正则表达式指定的部分。regexp_extract(„foothebar‟,

„foo(.*?)(bar)‟, 2) returns „bar.‟

返回URL指定的部分。string

parse_url(string

string

keyToExtract])

urlString,

string partToExtract [, string

parse_url(„/path1/?k1=v1&k2=v2#Ref1′, „HOST‟) 返回:‟‟

select amp,

string

get_json_object(string

json_string, string path)

get_json_object(nts,

„$.eventid‟),

get_json_object(ets,

„$.eventname‟) from log a;

string

string

int

string

space(int n)

repeat(string str, int n)

ascii(string str)

返回指定数量的空格

重复N次字符串

返回字符串中首字符的数字值

lpad(string str, int len, string

返回指定长度的字符串,给定字符串长度小于指pad)

定长度时,由指定字符从左侧填补。

string

array

rpad(string str, int len, string

返回指定长度的字符串,给定字符串长度小于指pad)

split(string str, string pat)

find_in_set(string

strList)

str, string

定长度时,由指定字符从右侧填补。

将字符串转换为数组。

返回字符串str第一次在strlist出现的位置。如果任一参数为NULL,返回NULL;如果第一个参数包含逗号,返回0。

将字符串中内容按语句分组,每个单词间以逗号int

array

分隔,最后返回数组。 例如sentences(„Hello

string>> string locale)

there! How are you?‟) 返回:( (“Hello”,

“there”), (“How”, “are”, “you”) )

array>

array>,

int N, int K, int pf)

SELECT

ngrams(sentences(lower(tweet)), 2, 100

[, 1000]) FROM twitter;

context_ngrams(array

>, array, int K, context_ngrams(sentences(lower(tweet)

e>> int pf) ), array(null,null), 100, [, 1000]) FROM

twitter;

3.内置的聚合函数(UDAF)

返回类型 函数

count(*) , count(expr),

bigint count(DISTINCT

expr_., expr_.])

double

sum(col), sum(DISTINCT

col)

avg(col),

col)

min(col)

max(col)

var_pop(col)

var_samp(col)

stddev_pop(col)

stddev_samp(col)

covar_pop(col1, col2)

covar_samp(col1, col2)

corr(col1, col2)

percentile(col, p)

percentile(col,

avg(DISTINCT

求和

expr[,

返回记录条数。

说明

double

double

double

double

double

double

double

double

double

double

double

求平均值

返回指定列中最小值

返回指定列中最大值

返回指定列的方差

返回指定列的样本方差

返回指定列的偏差

返回指定列的样本偏差

两列数值协方差

两列数值样本协方差

返回两列数值的相关系数

返回数值区域的百分比数值点。0<=P<=1,否则返回NULL,不支持浮点型数值。

返回数值区域的一组百分比值分别对应的数值点。array

array(p~1,, [, p,,2,,]…))

0<=P<=1,否则返回NULL,不支持浮点型数值。

Returns an approximate p^th^ percentile of

a numeric column (including floating point

types) in the group. The B parameter

controls approximation accuracy at the cost

of memory. Higher values yield better

approximations, and the default is 10,000.

When the number of distinct values in col is

smaller than B, this gives an exact percentile

value.

percentile_approx(col, Same as above, but accepts and returns an

one.

Computes a histogram of a numeric column

double

percentile_approx(col, p[,

B])

array

array(p~1,, [, p,,2_]…) [,

array of percentile values instead of a single

B])

array

‟,'y‟}>

b) in the group using b non-uniformly spaced

bins. The output is an array of size b of

double-valued (x,y) coordinates that

represent the bin centers and heights

array collect_set(col)

返回无重复记录

4.内置表生成函数(UDTF)

返回类型

数组

函数 说明

explode(array a)

数组一条记录中有多个参数,将参数拆分,每个参数生成一列。get_json_object语句:select amp,

„$.eventid‟), get_json_object(nts,

json_tuple

get_json_object(ets, „$.eventname‟) from log

a; json_tuple语句: select amp, b.* from log a

lateral view json_tuple(nt, „eventid‟,

„eventname‟) b as f1, f2

explode示例:

数组

SQL

返回

myNewCol

myCol

[1,2]

[3,4]

SELECT explode(myCol) AS myNewCol FROM

myTable

1

2

3

4


本文标签: 返回 指定 字符串 类型 参数