1.内置运算符1.1关系运算符运算符类型说明A=B所有原始类型如果A与B相等,返回TRUE,否则返回FALSEA==B无失败,因为无效的语法。SQL使用”=”,不使用”==”。AB所有原始类型如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。AB所有原始类型如果A小于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。A=B所有原始类型如果A小于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。AB所有原始类型如果A大于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。A=B所有原始类型如果A大于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。AISNULL所有类型如果A值为”NULL”,返回TRUE,否则返回FALSEAISNOTNULL所有类型如果A值不为”NULL”,返回TRUE,否则返回FALSEALIKEB字符串如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过sql进行匹配,如果相符返回TRUE,不符返回FALSE。B字符串中的”_”代表任一字符,”%”则代表多个任意字符。例如:(‘foobar’like‘foo’)返回FALSE,(‘foobar’like‘foo___’或者‘foobar’like‘foo%’)则返回TUREARLIKEB字符串如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过java进行匹配,如果相符返回TRUE,不符返回FALSE。例如:(‘foobar’rlike‘foo’)返回FALSE,(’foobar’rlike‘^f.*r$’)返回TRUE。AREGEXPB字符串与RLIKE相同。1.2算术运算符运算符类型说明A+B所有数字类型A和B相加。结果的与操作数值有共同类型。例如每一个整数是一个浮点数,浮点数包含整数。所以,一个浮点数和一个整数相加结果也是一个浮点数。A–B所有数字类型A和B相减。结果的与操作数值有共同类型。A*B所有数字类型A和B相乘,结果的与操作数值有共同类型。需要说明的是,如果乘法造成溢出,将选择更高的类型。A/B所有数字类型A和B相除,结果是一个double(双精度)类型的结果。A%B所有数字类型A除以B余数与操作数值有共同类型。A&B所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。两个表达式的一位均为1时,则结果的该位为1。否则,结果的该位为0。A|B所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。只要任一表达式的一位为1,则结果的该位为1。否则,结果的该位为0。A^B所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。当且仅当只有一个表达式的某位上为1时,结果的该位才为1。否则结果的该位为0。~A所有数字类型对一个表达式执行按位”非”(取反)。1.3逻辑运算符运算符类型说明AANDB布尔值A和B同时正确时,返回TRUE,否则FALSE。如果A或B值为NULL,返回NULL。A&&B布尔值与”AANDB”相同AORB布尔值A或B正确,或两者同时正确返返回TRUE,否则FALSE。如果A和B值同时为NULL,返回NULL。A|B布尔值与”AORB”相同NOTA布尔值如果A为NULL或错误的时候返回TURE,否则返回FALSE。!A布尔值与”NOTA”相同1.4复杂类型函数函数类型说明map(key1,value1,key2,value2,…)通过指定的键/值对,创建一个map。struct(val1,val2,val3,…)通过指定的字段值,创建一个结构。结构字段名称将COL1,COL2,…array(val1,val2,…)通过指定的元素,创建一个数组。1.5对复杂类型函数操作函数类型说明A[n]A是一个数组,n为int型返回数组A的第n个元素,第一个元素的索引为0。如果A数组为['foo','bar'],则A[0]返回’foo’和A[1]返回”bar”。M[key]M是MapK,V,关键K型返回关键值对应的值,例如mapM为\{‘f’-‘foo’,‘b’-‘bar’,‘all’-‘foobar’\},则M['all']返回’foobar’。S.xS为struct返回结构x字符串在结构S中的存储位置。如foobar\{intfoo,intbar\}foobar.foo的领域中存储的整数。2.内置函数2.1数学函数返回类型函数说明BIGINTround(doublea)四舍五入DOUBLEround(doublea,intd)小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26BIGINTfloor(doublea)对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。BIGINTceil(doublea),ceiling(doublea)将参数向上舍入为最接近的整数。例如ceil(21.2),返回23.doublerand(),rand(intseed)返回大于或等于0且小于1的平均分布随机数(依重新计算而变)doubleexp(doublea)返回e的n次方doubleln(doublea)返回给定数值的自然对数doublelog10(doublea)返回给定数值的以10为底自然对数doublelog2(doublea)返回给定数值的以2为底自然对数doublelog(doublebase,doublea)返回给定底数及指数返回自然对数doublepow(doublea,doublep)power(doublea,doublep)返回某数的乘幂doublesqrt(doublea)返回数值的平方根stringbin(BIGINTa)返回二进制格式,参考:(BIGINTa)hex(stringa)将整数或字符转换为十六进制格式。参考:(stringa)十六进制字符转换由数字表示的字符。stringconv(BIGINTnum,intfrom_base,intto_base)将指定数值,由原来的度量体系转换为指定的试题体系。例如CONV(‘a’,16,2),返回。参考:’1010′(doublea)取绝对值intdoublepmod(inta,intb)pmod(doublea,doubleb)返回a除b的余数的绝对值doublesin(doublea)返回给定角度的正弦值doubleasin(doublea)返回x的反正弦,即是X。如果X是在-1到1的正弦值,返回NULL。doublecos(doublea)返回余弦doubleacos(doublea)返回X的反余弦,即余弦是X,,如果-1=A=1,否则返回null.intdoublepositive(inta)positive(doublea)返回A的值,例如positive(2),返回2。intdoublenegative(inta)negative(doublea)返回A的相反数,例如negative(2),返回-2。2.2收集函数返回类型函数说明intsize(MapK.V)返回的map类型的元素的数量intsize(ArrayT)返回数组类型的元素数量2.3类型转换函数返回类型函数说明指定“type”cast(exprastype)类型转换。例如将字符”1″转换为整数:cast(’1′asbigint),如果转换失败返回NULL。2.4日期函数返回类型函数说明stringfrom_unixtime(bigintunixtime[,stringformat])UNIX_TIMESTAMP参数表示返回一个值’YYYY-MM–DDHH:MM:SS’或YYYYMMDDHHMMSS.uuuuuu格式,这取决于是否是在一个字符串或数字语境中使用的功能。该值表示在当前的时区。bigintunix_timestamp()如果不带参数的调用,返回一个Unix时间戳(从’1970-01–0100:00:00′到现在的UTC秒数)为无符号整数。bigintunix_timestamp(stringdate)指定日期参数调用UNIX_TIMESTAMP(),它返回参数值’1970-01–0100:00:00′到指定日期的秒数。bigintunix_timestamp(stringdate,stringpattern)指定时间输入格式,返回到1970年秒数:unix_timestamp(’2009-03-20′,‘yyyy-MM-dd’)=1237532400参考:(stringtimestamp)返回时间中的年月日:to_date(“1970-01-0100:00:00″)=“1970-01-01″stringto_dates(stringdate)给定一个日期date,返回一个天数(0年以来的天数)intyear(stringdate)返回指定时间的年份,范围在1000到9999,或为”零”日期的0。intmonth(stringdate)返回指定时间的月份,范围为1至12月,或0一个月的一部分,如’0000-00-00′或’2008-00-00′的日期。intday(stringdate)dayofmonth(date)返回指定时间的日期inthour(stringdate)返回指定时间的小时,范围为0到23。intminute(stringdate)返回指定时间的分钟,范围为0到59。intsecond(stringdate)返回指定时间的秒,范围为0到59。intweekofyear(stringdate)返回指定日期所在一年中的星期号,范围为0到53。intdatediff(stringenddate,stringstartdate)两个时间参数的日期之差。intdate_add(stringstartdate,intdays)给定时间,在此基础上加上指定的时间段。intdate_sub(stringstartdate,intdays)给定时间,在此基础上减去指定的时间段。2.5条件函数返回类型函数说明Tif(booleantestCondition,TvalueTrue,TvalueFalseOrNull)判断是否满足条件,如果满足返回一个值,如果不满足则返回另一个值。TCOALESCE(Tv1,Tv2,…)返回一组数据中,第一个不为NULL的值,如果均为NULL,返回NULL。TCASEaWHENbTHENc[WHENdTHENe]*[ELSEf]END当a=b时,返回c;当a=d时,返回e,否则返回f。TCASEWHENaTHENb[WHENcTHENd]*[ELSEe]END当值为a时返回b,当值为c时返回d。否则返回e。2.6字符函数返回类型函数说明intlength(stringA)返回字符串的长度stringreverse(stringA)返回倒序字符串stringconcat(stringA,stringB…)连接多个字符串,合并为一个字