SQL摘录笔记(4) --函数

检索出来的数据通常需要经过处理再展示在客户端应用程序中。

文本处理函数

拼接字段

一般可用 + 或者 | | 连接两个列,但在MySQL和MariaDB中,必须使用特殊函数。

SELECT p_name + '(' + p_age + ')'
FROM p
ORDER BY p_name;

+ 可以和 | | 互换

在MySQL和MariaDB中

SELECT Concat(p_name , '(' , p_age , ')')
FROM p
ORDER BY p_name;

一般上述输出数据会保存填充为列宽的文本值,如果需要去掉空格,获得格式化数据,则使用RTRIM()函数。

SELECT RTRIM(p_name) + '(' + RTRIM(p_age) + ')'
FROM p
ORDER BY p_name;

RTRIM()去掉字符串右边的空格 LTRIM()去掉字符串左边的空格 TRIM()去点字符串两边的空格

使用AS取别名,一般可用于不合法字符的重新命名

SELECT RTRIM(p_name) + '(' + RTRIM(p_age) + ')' AS p_n
FROM p
ORDER BY p_name;

执行算术计算

对检索数据进行算术计算
算术操作符:+ - * /

常用文本处理函数

LEFT()(或使用自字符串函数)

返回字符串左边的字符
LENGTH()(也使用DATALENGTH()或者LEN())返回字符串的长度
LOWER()(Access使用LCASE())将字符串转化为小写
LTRIM()去掉字符串左边的空格
RIGHT()(或使用子字符串函数)返回字符串右边的字符
RTRIM()去掉字符串右边的空格
SOUNDEX()(Access使用UCASE())返回字符串的SOUNDEX值,将任意文本转换为描述其语音表示的字母数字模式的算法
UPPER()将字符串转换为大写

 Microsoft Access 和 PostgreSQL 不支持SOUNDEX()。

若在创建SQLite时使用了SQLITE_SOUNDEX编译时选项,那么SOUNDEX()在SQLite中就可用。因为SQLITE_SOUNDEX不是默认的编译时选项,所以多数SQLite实现不支持SOUNDEX()。

SELECT p_name ,p_age 
FROM p
WHERE SOUNDEX(p_name) = SOUNDEX('Lily');

SOUNDEX函数会匹配所有发音类似于Lily的名字

日期和时间处理函数

SELECT p_name ,p_age 
FROM p
WHERE DATEPART(yy,p_date)=2019;

检索所有日期为2019的所有数据

在Access中使用一下格式

SELECT p_name ,p_age 
FROM p
WHERE DATEPART('yyyy',p_date)=2019;

在PostgreSQL中

SELECT p_name ,p_age 
FROM p
WHERE DATE_PART('year',p_date)=2019;

在Oracle中

SELECT p_name ,p_age 
FROM p
WHERE to_number(to_char(p_date,'YYYY'))=2019;

to_char()用来提取日期成分

to_number()用来将提取的成分转换为数值。

同样也可使用BETWEEN操作符

SELECT p_name ,p_age 
FROM p
WHERE p_date BETWEEN to_date('01-01-2019')
AND to_date('12-31-2019');

在SQL Server中使用CONVERT()替换to_date()

在MySQL和MariaDB中使用YEAR()从日期中提取年份

SELECT p_name ,p_age 
FROM p
WHERE YEAR(p_date)=2019;

SQLite也可以

SELECT p_name ,p_age 
FROM p
WHERE strftime('%Y',p_date)=2019;

按月份过滤

数值处理函数

ABS()

返回一个数的绝对值

COS()返回一个角度的余弦
EXP()返回一个数的指数值
PI()返回圆周率
SIN()返回一个角度的正弦
SQRT()返回一个数的平方根
TAN()返回一个角度的正切

 

聚集函数

对某些运行的函数计算并返回一个值。

AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和

上述函数也可自由组合

 

 

 

以上大部分来自于《SQL必知必会》

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值