Hive和Mysql通用的常用函数

本文介绍了SQL中常见的函数,包括字符串函数如ASCII、CONCAT,数学函数如ABS、ROUND,日期和时间函数如CURRENT_DATE、CURRENT_TIMESTAMP等,以及它们的使用示例,帮助读者理解如何在数据库操作中应用这些函数。
摘要由CSDN通过智能技术生成

1.字符串函数:

  • ASCII(): 返回第一个字符的ASCII码值。

例子:SELECT ASCII('A') AS result;

结果:65

  • CONCAT(): 将多个字符串连接在一起。

例子:SELECT CONCAT('Hello', 'World') AS result;

结果:HelloWorld

  • CONCAT_WS(): 将多个字符串用指定的分隔符连接在一起。

例子:SELECT CONCAT_WS(', ', 'John', 'Doe', '33') AS result;

结果:John, Doe, 33

  • LENGTH(): 返回字符串的长度。

例子:SELECT LENGTH('Hello World') AS result;

结果:11

  • LOWER(): 将字符串转换为小写。

例子:SELECT LOWER('HELLO WORLD') AS result;

结果:hello world

  • UPPER(): 将字符串转换为大写。

例子:SELECT UPPER('hello world') AS result;

结果:HELLO WORLD

  • SUBSTR(): 截取字符串的一部分。

例子:SELECT SUBSTR('Hello World', 1, 5) AS result;

结果:Hello

  • REPLACE(): 替换字符串中的一部分。

例子:SELECT REPLACE('Hello World', 'World', 'Universe') AS result;

结果:Hello Universe

  • TRIM(): 去除字符串前后的空格。

例子:SELECT TRIM(' Hello World ') AS result;

结果:Hello World

  • LPAD(): 在字符串左侧填充指定字符。

例子:SELECT LPAD('123', 5, '0') AS result;

结果:00123

  • RPAD(): 在字符串右侧填充指定字符。

例子:SELECT RPAD('123', 5, '0') AS result;

结果:12300

2.数学函数:

  • ABS(): 返回一个数的绝对值。

例子:SELECT ABS(-5) AS result;

结果:5

  • ROUND(): 将数字四舍五入为指定的位数。

例子:SELECT ROUND(3.1415926, 2) AS result;

结果:3.14

  • CEIL(): 返回不小于该数字的最小整数。

例子:SELECT CEIL(3.1415926) AS result;

结果:4

  • FLOOR(): 返回不大于该数字的最大整数。

例子:SELECT FLOOR(3.1415926) AS result;

结果:3

  • MOD(): 返回两个数的模数。

例子:SELECT MOD(10, 3) AS result;

结果:1

  • POWER(): 返回一个数的指数幂。

例子:SELECT POWER(2, 3) AS result;

结果:8

  • SQRT(): 返回一个数的平方根。

例子:SELECT SQRT(25) AS result;

结果:5

  • EXP(): 返回自然对数e的指数幂。

例子:SELECT EXP(2) AS result;

结果:7.3890560989306495

3.日期和时间函数:

  • CURRENT_DATE(): 返回当前日期。

例子:SELECT CURRENT_DATE() AS result;

结果:2023-04-07

  • CURRENT_TIMESTAMP(): 返回当前时间戳。

例子:SELECT CURRENT_TIMESTAMP() AS result;

结果:2023-04-07 08:34:35

  • YEAR(): 返回年份。

例子:SELECT YEAR('2023-04-07') AS result;

结果:2023

  • MONTH(): 返回月份。

例子:SELECT MONTH('2023-04-07') AS result;

结果:4

  • DAY(): 返回天数。

例子:SELECT DAY('2023-04-07') AS result;

结果:7

  • HOUR(): 返回小时。

例子:SELECT HOUR('08:34:35') AS result;

结果:8

  • MINUTE(): 返回分钟。

例子:SELECT MINUTE('08:34:35') AS result;

结果:34

  • SECOND(): 返回秒数。

例子:SELECT SECOND('08:34:35') AS result;

结果:35

  • FROM_UNIXTIME(): 将时间戳转换为日期时间格式。

例子:SELECT FROM_UNIXTIME(1617792000) AS result;

结果:2021-04-08 00:00:00

  • UNIX_TIMESTAMP(): 将日期时间格式转换为时间戳。

例子:SELECT UNIX_TIMESTAMP('2023-04-07 08:34:35') AS result;

结果:1670422475

  • DATEDIFF(): 返回两个日期之间的天数差异。

例子:SELECT DATEDIFF('2023-04-07', '2023-04-01') AS result;

结果:6

  • DATE_ADD(): 对日期进行加法操作。

例子:SELECT DATE_ADD('2023-04-07', INTERVAL 1 DAY) AS result;

结果:2023-04-08

  • DATE_SUB(): 对日期进行减法操作。

例子:SELECT DATE_SUB('2023-04-07', INTERVAL 1 DAY) AS result;

结果:2023-04-06

4.条件函数:

  • IF(): 如果条件成立,则返回A,否则返回B。

例子:SELECT IF(3 > 2, 'True', 'False') AS result;

结果:True

  • CASE WHEN: 可以根据特定的条件返回不同的结果。

例子:SELECTCASEWHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'WHEN score >= 70 THEN 'C'WHEN score >= 60 THEN 'D'ELSE 'F'END AS resultFROM student_scores;

  1. 聚合函数:
  • AVG(): 返回一组数的平均值。

例子:SELECT AVG(score) AS result FROM student_scores;

  • COUNT(): 返回一组数的数量。

例子:SELECT COUNT(*) AS result FROM student_scores;

  • MAX(): 返回一组数的最大值。

例子:SELECT MAX(score) AS result FROM student_scores;

  • MIN(): 返回一组数的最小值。

例子:SELECT MIN(score) AS result FROM student_scores;

  • SUM(): 返回一组数的总和。

例子:SELECT SUM(score) AS result FROM student_scores;

5.其他常用函数:

  • COALESCE(): 返回第一个非空值。

例子:SELECT COALESCE(NULL, 'Value', 'Value2') AS result;

结果:Value

  • GREATEST(): 返回一组数字中的最大值。

例子:SELECT GREATEST(10, 20, 30) AS result;

结果:30

  • LEAST(): 返回一组数字中的最小值。

例子:SELECT LEAST(10, 20, 30) AS result;

结果:10

  • FORMAT(): 格式化数字。

例子:SELECT FORMAT(12345.6789, 2) AS result;

结果:12,345.68

  • IFNULL(): 如果A不为空,则返回A,否则返回B。

例子:SELECT IFNULL(NULL, 'Value') AS result;

结果:Value

  • NULLIF(): 如果A等于B,则返回NULL。

例子:SELECT NULLIF(10, 10) AS result;

结果:NULL

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值