首页 技术 正文
技术 2022年11月15日
0 收藏 748 点赞 4,118 浏览 2039 个字
--=======================================
-- SQL常用内置函数
--=======================================--判断为null函数
declare @abc varchar(5)
set @abc='mnw'
select isnull(@abc,0); --如果变量abc值为null,则取0,否则取被赋的值--查找索引函数
select charindex('abc','bac abc fmd abc'); --获取字符串abc在长字符串bac abc fmd abc中的索引位置,索引默认从1开始找
select charindex('abc','bac abc fmd abc',9); --索引从9开始找--重复获取函数
select replicate('m',3); --按指定次数重复字符表达式,将m字符重复三次
select replicate('abc',2);--将字符串abc重复2次--大小写转换函数
select len('datazsrt'); --获取字符串长度
select lower('ADRTddd'); --转小写
select upper('data');--转大写--替换截取函数
select substring('abcdef111',2,3); --截取字符串select replace('dadt123','t1','AA'); --替换字符串--类型转换函数
select cast('2015-08-02' as datetime) as 日期类型; --数据类型转换,CAST是ANSI兼容的,而CONVERT则不是select 'ab'+cast(1 as varchar);-- 将1转化为字符串与ab相加select convert(datetime,'2015-08-02'); --数据类型转换,与cast相同select convert(varchar(19),getdate(),113); --不同的是convert还提供一些特别的日期格式转换,而cast没有这个功能select format(getdate(),'yyyy/mm/dd'); --将日期转化为规定的格式--数学函数
select round(2.15,1); --四舍五入,第二个参数索引从0开始,即:0表示小数后第一位进行判断select ceiling(2.158); --向上取整select floor(2.713); --向下取整--日期函数
select getdate();select datepart(mm,'2015-08-04 15:28:26'); --返回日期的某一部分 yy,mm,dd,hh,mi,ss,select dateadd(dd,-25,'2015-08-04 15:28:26'); --在日期中加上或减去制定的时间间隔,给天数减25天select datediff(day,'2008-06-05','2008-08-05') as 天数; --返回两个日期之间的天数--聚合函数
count(),min(),max(),avg(),sum()--4个排名函数,都可以与over()结合使用
row_number(),rank(),dense_rank(),ntile()select row_number() over(order by column_name),* from table_name; --按某个字段排名然后查询出所有值,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复
select row_number() over(order by column_name),* from table_name order by column_name desc; --先按某个字段排名给出序号,然后再根据另一个字段进行倒叙排列,排出序号可能会被打乱select rank() over(order by column_name),* from table_name; --rank函数会考虑到column_name中的值会重复或相同,那个给出的序号也会相同。但生成的序号不是连续的,rank是跳跃排序select dense_rank() over(order by column_name),* from table_name; --dense_rank函数不同与rank函数,它生成的序号是连续的,dense_rank不会跳跃--ntile()函数还是比较麻烦的排序分组函数select ntile(4) over(order by column_name des),* from table_name; --先对column_name进行倒序排列, 参数4表示分为4组,每组中有多少个相同的序号要根据(总记录数/总组数)+1 条--如果一个表中有6条数据,那么(6/4)+1=2;每组中有两个相同的记录数,末尾的根据情况分配,必须要分4组。但如果是8条数据,能整除,8/4=2;就不需要再加1,每组中平均分两条相同记录数的数据
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,498
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,911
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,745
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,501
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,139
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,303