SQL中常用的内置函数

SQL中常用的内置函数

在SQL(结构化查询语言)中,有许多内置函数可用于各种数据操作和计算。以下是SQL中常用的函数。

一.字符串操作、数值计算、日期处理

COUNT(): 统计行数。

SELECT COUNT(*) FROM employees;

SUM(): 计算数值列的总和。

SELECT SUM(salary) FROM employees;

AVG(): 计算数值列的平均值。

SELECT AVG(salary) FROM employees;

MIN(): 返回列中的最小值。

SELECT MIN(salary) FROM employees;

MAX(): 返回列中的最大值。

SELECT MAX(salary) FROM employees;

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

SELECT LENGTH(name) FROM employees;

SUBSTRING(): 提取字符串的一部分。

SELECT SUBSTRING(name, 1, 3) FROM employees;

REPLACE(): 替换字符串中的子串。

SELECT REPLACE(name, 'John', 'Jonathan') FROM employees;

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

SELECT UPPER(name) FROM employees;

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

SELECT LOWER(name) FROM employees;

二.数据操作和计算

CONCAT(): 连接两个或多个字符串。

SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

TRIM(): 去除字符串两端的空格或其他字符。

SELECT TRIM('   Hello World!   ') AS trimmed_string;

ROUND(): 对数值进行四舍五入。

SELECT ROUND(salary, 2) FROM employees;

CEIL(): 返回大于等于指定数值的最小整数。

SELECT CEIL(123.45) AS ceiling_value;

FLOOR(): 返回小于等于指定数值的最大整数。

SELECT FLOOR(123.45) AS floor_value;

NOW(): 返回当前的日期和时间。

SELECT NOW() AS current_date_time;

DATE(): 从日期时间中提取日期部分。

SELECT DATE(NOW()) AS current_date;

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

SELECT DATEDIFF(NOW(), '2024-01-01') AS days_difference;

IFNULL(): 如果表达式的结果为NULL,则返回指定的值。

SELECT IFNULL(middle_name, 'N/A') FROM employees;

COALESCE(): 返回第一个非NULL的表达式。

SELECT COALESCE(middle_name, first_name, 'N/A') FROM employees;

三.数据类型转换、条件判断和其他常用操作

CAST(): 将一个表达式转换为另一种数据类型。

SELECT CAST(salary AS DECIMAL(10, 2)) FROM employees;

CONVERT(): 另一种用于数据类型转换的函数。

SELECT CONVERT(VARCHAR, hire_date, 101) FROM employees;

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

SELECT ABS(-123.45) AS absolute_value;

POWER(): 返回一个数的指定次方。

SELECT POWER(salary, 2) FROM employees;

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

SELECT SQRT(salary) FROM employees;

MOD(): 返回两个数相除的余数。

SELECT MOD(salary, 1000) FROM employees;

SIGN(): 返回数值的符号,负数返回-1,零返回0,正数返回1。

SELECT SIGN(salary) FROM employees;

RAND(): 返回一个0到1之间的随机数。

SELECT RAND() AS random_number;

CASE: 基于条件返回不同的值。

SELECT 
    name,
    CASE 
        WHEN salary < 50000 THEN 'Low'
        WHEN salary BETWEEN 50000 AND 100000 THEN 'Medium'
        ELSE 'High'
    END AS salary_level
FROM employees;

DECODE(): 另一种实现条件判断的函数,类似于CASE。

SELECT 
    name,
    DECODE(salary, 
           50000, 'Low', 
           100000, 'Medium', 
           'High') AS salary_level
FROM employees;

GREATEST(): 返回多个数值中的最大值。

SELECT GREATEST(salary, bonus, commission) FROM employees;

LEAST(): 返回多个数值中的最小值。

SELECT LEAST(salary, bonus, commission) FROM employees;

IF(): 实现条件判断,如果条件为真则返回一个值,否则返回另一个值。

SELECT 
    name,
    IF(salary > 50000, 'Above Average', 'Below Average') AS salary_status
FROM employees;

LEFT(): 从字符串的左边开始提取指定数量的字符。

SELECT LEFT(name, 3) FROM employees;

RIGHT(): 从字符串的右边开始提取指定数量的字符。

SELECT RIGHT(name, 3) FROM employees;

REVERSE(): 反转字符串。

SELECT REVERSE(name) FROM employees;

CHAR_LENGTH(): 返回字符串中的字符数。

SELECT CHAR_LENGTH(name) FROM employees;

POSITION(): 查找子串在字符串中的位置。

SELECT POSITION('Smith' IN name) FROM employees;

LOCATE(): 查找子串在字符串中的位置,返回子串的位置。

SELECT LOCATE('Smith', name) FROM employees;

GROUP_CONCAT(): 将一个组中的值连接成一个字符串。

SELECT GROUP_CONCAT(name) FROM employees;

四.窗口函数、日期时间操作

ROW_NUMBER(): 窗口函数,用于为结果集中的每一行分配唯一的行号。

SELECT 
    name, 
    salary,
    ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num
FROM employees;

RANK(): 窗口函数,用于为结果集中的每一行分配排名,允许并列。

SELECT 
    name, 
    salary,
    RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees;

DENSE_RANK(): 窗口函数,类似于RANK(),但排名连续,没有间断。

SELECT 
    name, 
    salary,
    DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank
FROM employees;

NTILE(): 窗口函数,将结果集划分为指定数量的桶,并为每一行分配桶号。

SELECT 
    name, 
    salary,
    NTILE(4) OVER (ORDER BY salary DESC) AS quartile
FROM employees;

LAG(): 窗口函数,用于访问前一行的值。

SELECT 
    name, 
    salary,
    LAG(salary, 1) OVER (ORDER BY salary DESC) AS previous_salary
FROM employees;

LEAD(): 窗口函数,用于访问后一行的值。

SELECT 
    name, 
    salary,
    LEAD(salary, 1) OVER (ORDER BY salary DESC) AS next_salary
FROM employees;

FIRST_VALUE(): 窗口函数,返回分区中的第一个值。

SELECT 
    name, 
    salary,
    FIRST_VALUE(salary) OVER (ORDER BY salary DESC) AS first_salary
FROM employees;

LAST_VALUE(): 窗口函数,返回分区中的最后一个值。

SELECT 
    name, 
    salary,
    LAST_VALUE(salary) OVER (ORDER BY salary DESC) AS last_salary
FROM employees;

DATE_ADD(): 向日期添加指定的时间间隔。

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY) AS next_week;

DATE_SUB(): 从日期减去指定的时间间隔。

SELECT DATE_SUB(NOW(), INTERVAL 7 DAY) AS last_week;

YEAR(): 从日期中提取年份部分。

SELECT YEAR(hire_date) AS hire_year FROM employees;

MONTH(): 从日期中提取月份部分。

SELECT MONTH(hire_date) AS hire_month FROM employees;

DAY(): 从日期中提取天部分。

SELECT DAY(hire_date) AS hire_day FROM employees;

HOUR(): 从日期时间中提取小时部分。

SELECT HOUR(NOW()) AS current_hour;

MINUTE(): 从日期时间中提取分钟部分。

SELECT MINUTE(NOW()) AS current_minute;

SECOND(): 从日期时间中提取秒部分。

SELECT SECOND(NOW()) AS current_second;

EXTRACT(): 从日期时间中提取指定的部分(年份、月份、天、小时、分钟、秒)。

SELECT EXTRACT(YEAR FROM hire_date) AS hire_year FROM employees;

FORMAT(): 按照指定格式格式化日期或数值。

SELECT FORMAT(salary, 2) AS formatted_salary FROM employees;

UNIX_TIMESTAMP(): 返回当前时间的Unix时间戳。

SELECT UNIX_TIMESTAMP() AS current_timestamp;

FROM_UNIXTIME(): 将Unix时间戳转换为日期时间。

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) AS current_datetime;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/768546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】enum 关键字

在C语言中&#xff0c;enum关键字用于定义枚举类型。枚举是一种用户自定义的数据类型&#xff0c;由一组命名的整型常量构成。使用枚举可以提高代码的可读性和可维护性&#xff0c;特别是在表示一组相关的常量时。 定义和使用枚举类型 基本定义 要定义一个枚举类型&#xff…

机器人控制系列教程之Delta机器人轨迹规划

并联机器人轨迹规划原理 轨迹规划&#xff1a;并联机器人的轨迹规划相比于串联机器人更加严苛&#xff0c;因为在大多数工作场合都有高速、高精度、轻载的特征。其一般运动轨迹为 Point-To-Point&#xff0c;对这始末两点的轨迹规划在 Delta 机器人乃至所有机器人领域具有重要…

01 数据采集层 流量分发第一步规范采集海量数据

《易经》&#xff1a;“初九&#xff1a;潜龙勿用”。潜龙的意思是隐藏&#xff0c;阳气潜藏&#xff0c;阳爻位于最下方称为“初九”&#xff0c;龙潜于渊&#xff0c;是学而未成的阶段&#xff0c;此时需要打好基础。 而模块一我们就是讲解推荐系统有关的概念、基础数据体系…

2024年7月2日 (周二) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键&#xff0c;实现一键唤起、一键隐藏的 Windows 工具&#xff0c;并且支持窗口动态绑定快捷键&#xff08;无需设置自动实现&#xff09;。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 经典名作30周年新篇《恐怖惊魂夜…

VirtualBox Ubuntu Sever配置双网卡

Ubuntu 版本&#xff1a;Ubuntu Server 2404 vitrualBox 网卡配置&#xff1a; 如上配置后&#xff0c;ifconfig 只能看到 网卡1 应用了。要应用 网卡2 需要更改文件 /etc/netplan/50-cloud-init.yaml&#xff08;不同的ubuntu版本这个文件名可能不同&#xff09; 首先 ifcon…

《昇思25天学习打卡营第7天|函数式自动微分》

文章目录 今日所学&#xff1a;一、函数与计算图二、微分函数与梯度计算三、Stop Gradient四、Auxiliary data五、神经网络梯度计算总结 今日所学&#xff1a; 今天我学习了神经网络训练的核心原理&#xff0c;主要是反向传播算法。这个过程包括将模型预测值&#xff08;logit…

PyCharm远程开发配置(2024以下版本)

目录 PyCharm远程开发配置 1、清理远程环境 1.1 点击Setting 1.2 进入Interpreter 1.3 删除远程环境 1.4 删除SSH 2、连接远程环境 2.1 点击Close Project 2.2 点击New Project 2.3 项目路径设置 2.4 SSH配置 2.5 选择python3解释器在远程环境的位置 2.6 配置远程…

EXCEL返回未使用数组元素(未使用值)

功能简介&#xff1a; 在我们工作中&#xff0c;需要在EXCEL表列出哪些元素&#xff08;物品或订单&#xff09;已经被使用了&#xff08;或使用了多少次&#xff09;&#xff0c;哪些没有被使用。 当数量过于庞大时人工筛选或许不是好办法&#xff0c;我们可以借助公式&…

鸿蒙数据防泄漏(DLP)【Data Loss Prevention Kit简介】

Data Loss Prevention Kit简介 Data Loss Prevention Kit&#xff08;数据防泄漏服务&#xff0c;简称为DLP&#xff09;&#xff0c;是系统提供的系统级的数据防泄漏解决方案&#xff0c;提供文件权限管理、加密存储、授权访问等能力&#xff0c;数据所有者可以基于帐号认证对…

Python基础小知识问答系列-可迭代型变量赋值

1. 问题&#xff1a; 怎样简洁的把列表中的元素赋值给单个变量&#xff1f; 当需要列表中指定几个值时&#xff0c;剩余的变量都收集在一起&#xff0c;该怎么进行变量赋值&#xff1f; 当只需要列表中指定某几个值&#xff0c;其他值都忽略时&#xff0c;该怎么…

【数据分享】《中国金融年鉴》1986-2020年PDF版

而今天要免费分享的数据就是1986-2020年间出版的《中国金融年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 《中国金融年鉴》自1986年起&#xff0c;逐年记录着中国金融领域的发展历程、政策变化和市场动态。这部年鉴不仅是金融专业…

PD虚拟机和VirtualBox有什么区别?Parallels Desktop 19.1.1 破解版

随着计算机技术的不断发展&#xff0c;虚拟机软件在现代信息技术领域中扮演着越来越重要的角色。虚拟机不仅可以帮助用户在一台物理机器上运行多个操作系统&#xff0c;还能有效隔离不同环境&#xff0c;提升系统安全性。在众多的虚拟机软件中&#xff0c;PD虚拟机&#xff08;…

Halcon 基于分水岭的目标分割

一 分水岭 1 分水岭介绍 传统的分水岭分割方法&#xff0c;是一种基于拓扑理论的数学形态学的分割方法&#xff0c;其基本思想是把图像看作是地质学上的拓扑地貌&#xff0c;图像中每一像素的灰度值表示该点的海拔高度&#xff0c;每一个局部极小值及其周边区域称为集水盆地&…

Redis理解【精细】【快速上手】

目录 1. 了解3V和3高 2.什么是redis 3. redis可以做什么 4. Windows安装 5. 使用redis客户端操作redis 5.1 redis基本命令 5.1.1 切换数据库 5.1.2 查看当前数据库的大小 5.1.3 查看当前数据库所有的key ​​​​​​​ 5.1.4 清空当前数据库所有key 5.1.5 清空所…

操作系统真象还原:编写硬盘驱动程序

第13章-编写硬盘驱动程序 这是一个网站有所有小节的代码实现&#xff0c;同时也包含了Bochs等文件 13.1 硬盘及分区表 13.1.1 创建从盘及获取安装的磁盘数 要实现文件系统&#xff0c;必须先有个磁盘介质&#xff0c;虽然咱们己经有个虚拟磁盘 hd60M.img&#xff0c;但它只…

党建科普3D数字化展馆支持实时更新迭代

3D虚拟策展逐渐成为新时代下的主流方式&#xff0c;深圳华锐视点作为专业的web3d开发公司&#xff0c;具有专业化的3D数字化空间还原能力&#xff0c;能根据企业/个人不同需求和预算&#xff0c;为您打造纯线上虚拟3D艺术展&#xff0c;让您彻底摆脱实体美术馆的限制&#xff0…

好看的风景视频素材在哪下载啊?下载风景视频素材网站分享

随着短视频和自媒体的兴起&#xff0c;美丽的风景视频不仅能让人眼前一亮&#xff0c;更能吸引大量观众。无论是旅游博主分享那些令人心旷神怡的旅行片段&#xff0c;还是视频编辑师寻找背景素材来增强作品的视觉效果&#xff0c;高质量的风景视频素材需求量巨大。以下是几个下…

2024年上半年典型网络攻击事件汇总

文章目录 前言一、Ivanti VPN 的0 Day攻击(2024年1月)二、微软公司高管账户泄露攻击(2024年1月)三、Change Healthcare网络攻击(2024年2月)四、ConnectWise ScreenConnect漏洞利用攻击(2024年2月)五、XZ Utils软件供应链攻击(2024年3月)六、AT&T数据泄露攻击(20…

Continual Test-Time Domain Adaptation--论文笔记

论文笔记 资料 1.代码地址 https://github.com/qinenergy/cotta 2.论文地址 https://arxiv.org/abs/2203.13591 3.数据集地址 论文摘要的翻译 TTA的目的是在不使用任何源数据的情况下&#xff0c;将源预先训练的模型适应到目标域。现有的工作主要考虑目标域是静态的情况…

【数据分享】《中国建筑业统计年鉴》2005-2022 PDF

而今天要免费分享的数据就是2005-2022年间出版的《中国建筑业统计年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 需要2023的数据的请添加小编咨询 数据介绍 在过去的十八个年头中&#xff0c;中国建筑业经历了翻天覆地的变化。从《中国建…