聚合函数
-> MAX(字段)
-> MIN(字段)
-> AVG(字段)
•-> 在计算时,对于null的数据不计入总是
-> SUM(字段)
-> COUNT(字段)
•-> count(*)计算所有的列、count(字段)不计为null的列
  聚合函数会忽略为空的值
-> select的字段可以当做变量名来进行计算
•-> select (english+math)/2 as 平均分 form score
-> 计算时null表示未知,既不是最大,也不是最小,与null的运算结果也为null
 
 1 select name,
2 AVG(score),
3 COUNT(score),
4 COUNT(*),
5 MAX(score),
6 min(score),
7 SUM(score)
8 from
9 Score
10 where
11 name = '张三'
12 group by
13 name;
14
18 select
19 name,
20 score,
21 AVG(score) over()
22 from
23 Score
 
字符串函数
LEN() :计算字符串长度(字符的个数。)
datalength();//计算字符串所占用的字节数,不属于字符串函数。
LOWER() 、UPPER () :转小写、大写
LTRIM():字符串左侧的空格去掉
RTRIM () :字符串右侧的空格去掉
LTRIM(RTRIM('         bb        '))
LEFT()、RIGHT()  截取取字符串
•SELECT LEFT('abcdefg',2) 结果为---ab,左边开始截取2个
 SUBSTRING(string,start_position,length)
-> 参数string为主字符串,start_position为子字符串在主字符串中的起始位置,该位子1开始
-> length为子字符串的最大长度。
-> SELECT  SUBSTRING('abcdef111',2,3)结果为--bcd

 1 -- 在数据库中存储了订单的编号D000134623321
2 -- 订单编号以D开头并有十位数字
3 select
4 'D' + right('0000000000' + id, 10) as id,
5 name,
6 price
7 from
8 (
9 values
10 ('123', 'ACER台式电脑', 13566),
11 ('13', '九阳豆浆机', 400),
12 ('9761', '南府电池', 10)
13 ) as tbl(id, name, price)
 
日期函数
-> 获得系统当前时间:getdate()
•select getdate()
•当前是第几天:select day(getdate())
•当前的年份:select year(getdate())
•当前的月份:select month(getdate())
-> 在当前时间加上一个时间间隔
•dateadd(在哪个部分增加,增加多少,日期)

select datepart(Dw, GETDATE());
--周三,显示的是4 ???? --小时+10
select GETDATE(), DATEADD(HH,10,GETDATE());
--天+10
select GETDATE(), DATEADD(day,10,GETDATE());
l-> 判断两个日期的间隔
•datediff(单位,开始的时间,结束的时间)
-> 实例:将学生按年龄分组
1 select datediff(year,stuBirthdate,getdate()),count(stuId )
2 from Student group by datediff(year,stuBirthdate,getdate())
3 order by datediff(year,stuBirthdate,getdate())
 1 select
2 *
3 from
4 Student
5 where
6 MONTH(stuBirthdate) = 6--6月份出生的
7 and
8 YEAR(GETDATE()) - YEAR(stuBirthdate) between 19 and 26;
9
10 select
11 *
12 from
13 Student
14 where
15 MONTH(stuBirthdate) = 6
16 and
17 YEAR(GETDATE()) - YEAR(stuBirthdate) in (19, 21, 23, 27);

--为了提高查询的效率,索引字段不应添加方法处理

-- 如果在stuBirthdate上添加了索引,但是如此查询(使用datediff方法)那么索引无效

-> 返回日期的特定部分
•datepart()
•示例:统计学生出生年份和数量(某一年的有多少个)
1 select datepart(year,stuBirthdate),count(*)
2 from student group by datepart(year,stuBirthdate)
3 order by datepart(year,stuBirthdate)
 len和datelength区别?
-> datalength()系统函数,计算字节数
-> len()函数,计算字符数
 1 select ASCII('abc');--97
2 select ASCII('我');--206
3 select UNICODE('abc');--97
4 select UNICODE('我');--25105
5
6 select CHAR(97);--a
7 select NCHAR(25105);--我
8
9 --len 是字符数(不算空格),datelength是字节数
10 select LEN('1234567890'),LEN('一二三四五六七八九十');--10,10
11 select DATALENGTH('1234567890'), DATALENGTH('一二三四五六七八九十');--10,20
12 select LOWER('aAbBcC'), UPPER('aAbBcC');--小写,大写
13
14 select len(' 123') --6
15 select datalength(RTRIM('123 ')); --3
16 select LEN('123 '); --3
17 select DATALENGTH('123 '); --6
 
类型转换函数
 
CAST ( expression AS data_type)
CONVERT ( data_type, expression,[style])
Select ‘您的班级编号’+ 1  错误这里+是数学运算符
SELECT FIdNumber,
CAST(RIGHT(sNo,3) AS INTEGER) as 后三位的整数形式,
CAST(RIGHT(sNo,3) AS INTEGER)+1 as 后三位加1,
CONVERT(INTEGER,RIGHT(sNo,3))/2 as 后三位除以2
FROM student
对日期的转换。转换成各种国家格式的日期。
•select convert(varchar(20),getdate(),104)
•Style的格式,查sql帮助。(输入convert函数查询)
•将日期转换为指定格式的字符串。日期→字符串
 

SqlServer内置函数和使用的更多相关文章

  1. sqlserver学习笔记(六)—— sqlserver内置函数(字符串、日期)

    sqlserver中有很多内置函数,这里总结了一些常用的 一.关于字符串的函数: 1.CHARINDEX 寻找一个指定字符串在另一个字符串中的起始位置 SELECT CHARINDEX('world‘ ...

  2. sqlserver根据id集合,批量插入。(巧用sqlserver内置函数)

    场景如下,传入的id,如1,3,4,88.可以在.net后台处理,但是我更习惯在数据库中操作. 插入数据时可以这样处理,直接贴代码. CREATE PROCEDURE pro_CategorySave ...

  3. SQLServer内置函数

    类型转换函数cast和convert --cast一般更容易使用,convert的优点是可以格式化日期和数值 select CAST('123.4' as int) --失败 select CONVE ...

  4. Sqlserver内置函数实现MD5

    16位: SELECT substring(sys.fn_sqlvarbasetostr(HashBytes('MD5', '需要加密字符串')),3,16) 32位 SELECT substring ...

  5. SqlServer常用内置函数

    --======================================= -- SQL常用内置函数 --======================================= --判 ...

  6. SQLServer中DataLength()和Len()两内置函数的区别(转载)

    最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE ...

  7. SQLServer中DataLength()和Len()两内置函数的区别

    最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE ...

  8. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  9. Oracle中的内置函数在sql中的转换整理

    程序里面经常会即支持Oracle数据库,又支持sql数据库.而有些Oracle内置函数用的比较多,但在sql中语法有些不同,我做了些整理,希望可以帮助大家.... 1.oracle中的内置函数:ora ...

  10. 10、SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

随机推荐

  1. Wang Tile的Shader简易实现

    在使用大面积的平铺纹理时,会导致重复感较强的贴图呈现在画面中.我们可以通过许多方法进行优化,WangTile就是其中一种. WangTile(王浩瓷砖)方法通过对每条边标记颜色,并在平铺时将相同颜色的 ...

  2. C语言:生成单词列表----使用单链表实现

    解决之前用结构体数组导致内存过剩问题,使用动态分配内存优化单词列表. txt文本内容不允许出现其他字符形式,这个仅限于判断在txt网页文件已经删除了超链接等,文本里面只允许出现单词才能进行判断和进行单 ...

  3. 复杂模式的两个List与Map合并为一个Map的拼接;笛卡尔乘积处理数据问题

    简介 (Introduction): 背景 数据从多个表中获取,每个表的数据条数不是唯一的,最后结果要拼接成一个Map<String,Object>的模式封装所有数据,每个数据是一条. 结 ...

  4. PageOffice在线打开office文件通过js调用vba可实现的功能

    pageoffice封装的js接口有限,某些比较复杂的设置用到的客户不多,所以没有提供直接的js方法,但是pageoffice提供了Document属性和RunMacro方法,可以调vba或直接运行宏 ...

  5. sqlServer 重复数据项处理,只选其中一条,保留一条

    select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) --删除 from tab ...

  6. 为什么wait()、notify()方法需要和synchronized一起使用

    提示:更多优秀博文请移步博主的GitHub仓库:GitHub学习笔记.Gitee学习笔记 Obj.wait()与Obj.notify()必须要与synchronized(Obj)一起使用,也就是wai ...

  7. 003. git标签

    git标签 标签用于记录详细修改内容,为后续使用提供帮助. 也方便快速的回滚. 每一次提交[commit]都可以打一个tag标签. 测试阶段标签规则: 以 0.01 0.02版本为主 正式上线标签规则 ...

  8. Vue.js 动态组件与异步组件

    title: Vue.js 动态组件与异步组件 date: 2024/6/2 下午9:08:50 updated: 2024/6/2 下午9:08:50 categories: 前端开发 tags: ...

  9. 一文带你理解透MyBatis源码

    本文分享自华为云社区<一文彻底吃透MyBatis源码!!>,作者:冰 河. 写在前面 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis.而且,很多大厂在 ...

  10. itest work 开源接口测试&敏捷测试管理平台 9.5.0 GA_u1,优化及修复关键 BUG

    (一)itest work 简介 itest work (爱测试)  一站式工作站让测试变得简单.敏捷,"好用.好看,好敏捷" ,是itest wrok 追求的目标.itest w ...