SQL基本函数

SQL 函数 SQL 拥有很多可用于计数和计算的内建函数。 阅读详情

SQL基本函数

单行函数:一行数据输入,返回一个值的函数。

多行函数:多行数据输入,返回一个值得函数,典型的就是聚合函数。

一、单行函数的几种类型

1、字符型函数

       1) lower('SQL Course')----->sql course 返回小写

        

       

       2) upper('sql course')----->SQL COURSE 返回大写

        

        

        Upper和lower是对字符串中的英文字母取大取小,对于字符串中的数字、汉字、符号不做改变。

       3) initcap('sql course')-----> Sql Course 每个单词返回首字母大写

        

       4) concat('good','string')---->goodstring 拼接   只能拼接2个字符串

        

       5)substr('String',1,3)----->Str  截取子串,从第一位开始截取3位

        

        第二个参数是1和0 的结果是一样的。都是从第一位开始算。

        

        substr('String',3)   从左到右第三位起始,得到后面所有字符,从1开始数。

        

        substr('String',-2)   倒数第二位,起始,得到最后所有字符。

        

        第三个参数没有的话默认到结尾,如果是0则表示取0个字符,即没有。若字符串中有汉字还是按字符处理。

        

        

        6)instr('t#i#m#r#a#n#','#')--->找第一个#字符在哪个绝对位置,得到的数值。若字符串中没有要查找的字符,则返回0

              instr(字符串,要查找的字符串,开始的位置,出现的次数)

        

        指定的可以说字符串也可以是字符,默认是从左向右第一个出现的位置。

        

        从第一位、第三位、第六位开始数

        

        从右向左(倒着)开始第一位、第三位、第六位数

        

        从左往右和从右往左第几次出现字符串位置

        

        select instr('aunfukk','u',-1,1) from dual; 倒数第一个u是哪个位置,结果返回5

        

        7)length('String')---->6长度,得到的是数值

       

        8)lpad('first',10,'$')左填充

       

        9)rpad(676768,10,'*')右填充

        

        10)replace('JACK and JUE','J','BL')---->BLACK and BLUE

        

       replace('JACK and JUE','J')-----àACK and UE

        

        SQL 中没有提供删除字符串中匹配的子字符串的方法,因为使用 REPLACE()函数就可以达到删除子字符串的方法,那就是将第三个参数设定为空字符串或者省略第三个参数,用空字符串来替换匹配的子字符串也就达到了删除指定子字符串的效果了 。

       

        去除某个字符串或字符

        

        第二个参数为空的时候结果不变

        

        11)trim('m' from 'mmtomlium')---->  tomliu  两头截,这里的‘m’是截取集,仅能有一个字符

        

        Trim只能去除一个字符,会去除两边的字符。

        

        

        12)ltrim---->截去字符串左边的空格

        

        从左边算起,去除第二个参数中出现过的字符,无匹配返回原结果。

        

        

        若都匹配了返回空

        

       13) rtrim------>截去字符串右边的空格

        

        14)ASCII码函数:用来得到一个字符的ASCII码,它有且只有一个参数,如果参数是一个字符串,则返回第一个字符的ASCII码。

        

        15)|| 拼接函数

        

        如果字符串中包含了null,则将null处理成‘’,在拼接。

        16) chr函数

        Ascii函数的反函数,将ASCII码转换为字符

        

        17)translate替换函数

        

        Translate是replace提供的一个超集,如果需要替换的字符比替换的字符多,那么在需要替换的字符中而不在替换的字符中的额外字符将被删除,因为没有相应的字符替换,替换的字符不能为空,如果参数中任何参数为null,结果就是null。

        

        

        需要替换的字符和替换的字符是从左到右一一对应的关系,如果不能对应,则视为空值。

        

        汉字是按字符处理的。

        

        18)greatest      取一行最大值

        Oracle比较一列的最大值最小值:max和min

        Oracle比较一行的最大值最小值:coalesce / greatest/least

        GREATEST 返回值列表中最大值

        格式: GREATEST(value1, value2, value3, ...)

        含义: 返回value列表最大的值。

        value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

        当value值列表中有一个为NULL,则返回NULL值。

        

        有些可以通过隐式转换的,转换后比较,不能隐式转换的报错。

        

        

        部分为字符型,会把非字符型转换成字符型:

        

        19) least 取一行最小值

        LEAST 返回值列表中最小值

        格式: LEAST(value1, value2, value3, ...)

        含义: 返回value列表最小的值。

        value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

        当value值列表中有一个为NULL,则返回NULL值。

        

      20) coalesce 返回第一个非空值

        格式: COALESCE(value1, value2, value3, ...)

        含义: 返回value列表第一个非空的值。

        value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

        
2、数值型函数

        1) round对指定的值做四舍五入,round(p,s) ,以小数点为0,小数点后为正数 ,小数点左边为负数。

        

        若round后只有一个参数,按第二位为0 处理,也就是取整。

        

        2) trunc 对指定的值取整 trunc(p,s)

        trunc:按指定精度截断十进制数,如:trunc(45.923,1),结果,45.9

        

        3) mod 返回除法后的余数。

        

        4)求绝对值:ABS()函数,求一个数的绝对值。

        

        abs函数的参数是null的时候,结果也是null,因为ABS函数处理的是列,大多数处理列的函数,对null的处理都是null。

        5)求指数:power()函数,接受两个参数,第一个参数为带求幂的表达式,第二个为幂。

        

       6) 求平方根:sqrt()函数,用来计算平方根。

        

        7)求随机数:oracle没有内置的生成随机数的函数,不过oracle提供了包dbms_random用来生成随机数,使用方法如下:

        dbms_random.value

        

        ORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式,罗列如下:

       a、小数( 0 ~ 1)

             select dbms_random.value from dual

        b、指定范围内的小数 ( 0 ~ 100 )     

            select dbms_random.value(0,100) from dual

            

        c、指定范围内的整数 ( 0 ~ 100 )

             select trunc(dbms_random.value(0,100)) from dual

            

        d、长度为20的随机数字串
             select substr(cast(dbms_random.value as varchar2(38)),3,20) from dual

           

        e、正态分布的随机数

             select dbms_random.normal from dual;

            

        8)舍入到最大整数

            ceil()函数,用来舍掉一个数的小数点后的部分,并且向上舍入到临近的最大整数。

            

            

        9)舍入到最小整数

            floor()函数,和ceil函数相反,用来舍掉一个数的小数点后的部分,并且向下舍入到临近的最小整数。

            

        10)求符号

            sign()函数用来返回一个数的符号,如果大于0则返回1,如果等于0 则返回0 ,如果小于0则返回-1 。

            

        11)还有数学公式函数:正余弦函数sin()、cos()、自然对数log()等。

3、日期型函数

        日期在oracle中以数字形式存储,所以可以对他进行加减运算。计算是以天为单位。

        

        1)当前时间:current_date, 返回该函数执行的时间。

       

        2)current_timestamp  当前日期和时间

        

        3)extract  截取日期元素

        

        

        4)cast  转换函数

        cast(转换前的值  as  想要转换的数据类型)

        

        5)MONTHS_BETWEEN   计算两个日期之间的月数,大的在前

        

         比如查找emp表中参加工作时间>30年的员工。

        

        6)ADD_MONTHS   给日期增加月份

        

        

        7) LAST_DAY  日期当前月份的最后一天

        

        8)next_day  第二个参数是数字1-7,代表周日到周六。

            比如取下一周五

        

        9)round(p,s)在日期中的应用,如何舍入要看具体情况,s是month按30天计,应该15舍16入,s是year则按6舍7入计算。       


附:

    date类型中存储有年、月、日,时、分、秒的全部信息,但默认情况下,在SQLPLUS中,只显示年月日的信息。所以,用以下命令将当前会话中的日期显示参数改为显示全部信息:

        alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"
    然后你可以再次测试和DATE相关的函数操作,比如TRUNC,LAST_DAY,NEXT_DAY,add_months等。对于add_months,如果是如下的操作,其结果又是什么?建议先自己推测,然后再实验验证:
  add_months(date'2018-01-09',1)
  add_months(date'2018-01-30',1)
  add_months(date'2018-01-31',1)
  add_months(date'2018-02-28',1)

  add_months(date'2018-01-09',-1)
  add_months(date'2018-02-28',-1)
  add_months(date'2018-03-30',-1)
  add_months(date'2018-03-31',-1)
   
    
   

    add_month给日期增加月份,加参数个月,到该月的当日。若加之后的月比加之前的月的天数少,加之后原本应该超过的时候结果取该月最后一天。比如以下例子,一月份加一个月到二月份,1月29之前的日期都是到2月的同一天,而28之后的日期因为二月份只有28天,所以都会显示到2月28。所以直接月份相减不会超过参数个。不是直接加30或31天。

   

    当参数为负,也就是月份减的时候,也是同样的道理。

   

结论:

        1、add_months是对第一个参数的日期进行第二个参数的加减操作。

      2、add_months的单位是月,不是单纯的加30或31天,比如add_months('2018-01-15',1),结果就是2018-02-15。add_months('2018-03-25',-1)结果就是2018-02-25。但也有例外,如下。

        3、add_months('2018-01-30',1)结果是2018-02-28,因为18年2月只有28天,月数加的也是1 ,所以结果只能是2 月,这种情况下结果就是2月的最后一天。也就是加月份的时候,若加前后的那月天数比加之后多,结果只能是加之后那月的最后一天。

        4、add_months('2018-03-30',-1)结果是2018-02-28,和加的情况类似,视情况而定。

trunc: 

        

        使用trunc函数对日期操作时,默认都是舍去时分秒,对天取整。

trunc可以有参数:

        

        参数是年取当年第一天0时,参数为月取当月第一天0时,参数为日取当天0时

        

        参数为时取当时0分,参数为分取当时当分0秒。

        注意DD和D的区别:

        

        DD是当天0时,D是当周第一天0时

last_day:

        

        当使用last_day求当月最后一天时,年月日是当月最后一天,具体时分秒也是执行SQL的当前时分秒。也就是本月最后一天的此时此刻。

next_day:

        

        当使用next_day求下个星期几时,年月日是下一个星期几的年月日,具体时分秒也是执行SQL的当前时分秒。也就是下个星期几的此时此刻。



SQL之常用函数 窗口函数 窗口函数,可以对数据库数据进行实时分析处理: 同时具有分组(partition by)和排序(order by)的功能 不减少原表的行数,所以经常用来在每组内排名 窗口函数原则上只能写在select子句中 语法 <窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>) <窗口函数>的位置,可以放以下两种函数: 静态窗口函数 排名函数,如rank,den 阅读详情

相关推荐

将汉字转为全拼或返回拼音首字母(Oracle SQL语句)

将汉字转为全拼或返回拼音首字母(Oracle SQL语句)

在一个字符串中查找第一个非重复的字符

问题描述:编写一个函数,这个函数接受一个字符串作为参数,并返回第一个不重复的字符。例如,字符串"abbcda",c是第一个不重复的字符。 解决方法: 方法一:使用linkedHashMap来记录字符的个数,因为LinkedHashMap维持了插入元素的顺序,所以当我们扫描字符串时,只需要迭代LinkedHashMap并返回值为1的元素。 实现代码如下: public s

Tian_Ex的博客 1615

使用Jacob实现将Word文件转换为Pdf文件

如果是首次使用 jacob,建议先直接从 github上下载 zip包,因为在实现Word转Pdf的时候,不仅需要用到 jacob.jar,还需要 jacob.dll 库,而zip包中都有。官方使用文档可以参考:https://github.com/freemansoft/jacob-project/blob/main/docs/UsingJacob.md。// 如果安装的是微软的 Office,需要使用 Word.Application。

qq_41672950的博客 750

sql常用函数

sql中的内置函数

qq_59114219的博客 5723

用74LS194和555定时器DIY流水灯:一个经典的数字电路课程设计复盘(附Multisim仿真文件)

本文详细介绍了使用74LS194移位寄存器和555定时器搭建八路彩灯控制器的完整过程,包括硬件选型、电路设计、调试技巧及常见问题解决方案。作为经典的数字电路课程设计,该项目涵盖了EDA工具应用、电路原理图设计和Multisim仿真等核心技能,适合电子工程学习者实践参考。

weixin_29185199的博客 427

pytorch中的wheel文件

whl 文件是 Python 的一个软件包分发格式,用于在 Python 中安装软件包。它是 Python Wheel 的缩写,也被称为 wheel 文件。这种文件格式旨在简化 Python 软件包的安装和分发。对于 PyTorch 而言,它提供了预编译的 .whl 文件,您可以通过 pip 安装这些文件来快速方便地安装 PyTorch。这些 .whl 文件是已经编译好的二进制分发文件,可以直接安装在您的 Python 环境中,而无需再进行编译。

bj_zhb的博客 3127

sql函数大全

1.count函数 该函数将返回满足where条件子句中记录的个数 select count(*) from 表名 或者是这样写: select count(*) from 表名 where 条件 2.sum函数,返回某一列的所有数值的和 select sum(字段名) from 表名 3.avg函数,它可以返回某一列的平均值 select avg(字段名) from 表名 4.max函数,它可以返回某一列中的最大数值 select max(字段名) from 表名 5.min函数

zsd_fresh的博客 1万+

QT使用高精度定时器

精度相对第二种方法高许多。

ljjjjjjjjjjj的博客 4097

SQL函数

可以划分成8个类别1、2、数字函数3、4、日期函数5、转换函数6、7、条件函数8、加密函数。

2403_89671551的博客 2176

指纹浏览器降维打击(下):Cloudflare Turnstile 与 hCaptcha 的底层交互逻辑

本文将深度拆解:Turnstile 与 hCaptcha 的 Iframe 沙箱通信机制,动态混淆 JS 与 PoW(工作量证明)的物理破解法则,以及如何通过 C++ 底层事件合成与环境基因强绑定,实现验证码的“无感过验”。

数据知道的博客 422

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2568

sql基本函数大全

SQLServer基本函数 1.字符串函数长度与分析用datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) 返回字符串右边int_expr个字符 字符操作类 upper(char_expr) 转为大写 lower(char_ex

Charisma(蚂蚁)滴BLOG|纯属凑热闹而已 1211

JS逆向-Protobuf逆向解析

目录一、什么是Protobuf二、Protobuf环境配置三、Protobuf实例序列化与反序列化四、逆向解析 Protobuf案例1、python序列化2、python反序列化 一、什么是Protobuf 1、protocol buffers介绍:是一种语言无关、平台无关、可扩展的序列化结构数据的方法。严格说不算是加密,只能是叫序列化结构数据,让可读变为疑似的乱码,那反序列化即让疑似的乱码变为可读 2、protobuf使用流程的前提是有一个.proto文件,对逆向而言就是还原.proto文件,选择

十一姐的博客 1万+

SQL基本函数总结

SQL中的函数:算术函数、字符串函数、日期函数、转换函数和聚合函数。

mzhow的博客 461

2026年3月GESP真题及题解(C++七级):物流网络

2026年3月GESP真题及题解(C++七级):物流网络

王老师青少年编程 1126

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SQL DATEDIFF函数

SQL DATEDIF函数计算并返回两个日期值之间的差值。返回的值是一个整数。您可以通过DATEDIFF改变datepart参数来计算各种日历计算。

寒冰屋的专栏 3万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SQL函数学习

SQL函数学习

ONEBEYONDFANS的博客 1113

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

sql聚合函数_SQL聚合函数

sql聚合函数SQL Aggregate Functions basically operate on multiple columns to perform the operations and serve to represent the output as an entity representing the operation executed. SQL聚合函数基本上在多个列上进行操作以执...

从零开始的教程世界 4607

【SQL】SQL函数

函数 是指一段可以直接被另一段程序调用的。

qq_45280097的博客 1833

SQL Server 的基本函数有哪些呢?

SQL Server数据库中常用的函数1、聚合函数2、数字函数3、日期函数4、自定义函数 1、聚合函数 最大数 Max() 示例: go use 数据库名 go select max(ID) --最大数 from 表名 --ID值的最大值 最小数 Min() 平均数 avg() 求和 sum() 求个数 count() 2、数字函数 Ceiling()取整 取大 floor() 取整 取小 abs()绝对值 round(,) 四舍五入 square() 平方 sqrt()开根号 rand() 随机值 3

H_0207的博客 760

SQL Server基本函数

SQL SERVER 函数: 1.字符串函数 : 长度与分析类 : datalength(expression) 返回字符串包含字节数,包含Char类型字符的空格 len(expression) 返回字符串包含的字符数,不包含Char类型字符的空格 substring(expression,start,length) 从指定位置截取定长字符串,length指的是需截取的字符长度,第一个字符的默认...

whaohaoxuexi02的专栏 154

sql函数_SQL函数

sql函数In day to day usage of SQL, there is a time when we need to manipulatedata based on the type of data. For example, in a table which comprises prices we need to get the average or sum of all the ...

从零开始的教程世界 1306

SQL sum函数

SQL sum函数用于统计某一列的和; 原表; 统计paynum列的和; sql对字段可以使用别名,语法是: as xxx;使用别名后如下; 全部运行一下; select * from mempays select SUM(paynum) from mempays select SUM(paynum) as paynums from mempays ...

bcbobo21cn的专栏 1万+

sql基本函数

sql基本函数         1.字符串函数 长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) 返回字符串右边int_expr个字符 字符操作类 upper(char_expr) 转为大写

嘻嘻哈哈.Net 661

sql cast函数_SQL基础丨SQL函数

常用的SQL函数SQL提供了一些常用的内置函数,通常可以把内置函数分为四类:- 算术函数- 字符串函数- 日期函数- 转换函数这4类函数分别代表了算数处理、字符串处理、日期处理、数据类型转换。函数是对提取出来的数据进行操作。经常会保存一些数值,无论是整数类型,还是浮点类型,实际上对应的就是数值类型。保存一些文本内容,可能是人名,或者某个说明,对应的就是字符串类型。除此之外还需要保存时间,...

weixin_39751327的博客 472
上一篇: SQL基础总结
下一篇: 事务
Root__Liu
博客等级 码龄10年 13粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值