Sqlserver基础教程系列4-一些函数的用法

(1)聚合函数:

聚合分析是指对数据表中的一列或多列所进行的统计分析

1、统计计数函数---COUNT( ),调用方式可归结为三种:

COUNT(*)

SELECT COUNT(*) AS 当前表的总行数

FROM STUDENT5

COUNT(ALLCOLUMN)

SELECT COUNT(S_AVGRADE) AS 参加考试的人数

FROM STUDENT5

COUNT(DISTINCTCOLUMN)

SELECT COUNT(DISTINCT S_DEPT) AS 不同系别的个数

FROM STUDENT5

2、求和函数---SUM( )

SELECT SUM(S_AVGRADE) AS 所有平均成绩总和,SUM(DISTINCTS_AVGRADE) AS 非重复平均成绩的总和 FROM STUDENT5

说明:查询 sum(某一个字段) as 起个名字 哪个表

3、均值函数---AVG( )

SELECTAVG(S_AVGRADE) FROM STUDENT5 WHERE S_SEX =‘女’

SELECTAVG(DISTINCT S_AVGRADE) FROM STUDENT5

4、最大/最小函数---MAX()/MIN( )

函数MAX( )和MIN( )分别用于求组中列COLUMN的最大值,最小值.

SELECT MAX(S_AVGRADE) AS 平均成绩的最大值,MIN(S_AVGRADE) AS 平均成绩的最小值

FROM STUDENT5

(2)字符串函数:也可以结合到数据库表的查询中使用如下语句:

select LEFT(t_name,1) as 姓氏  from teacher 说明:就是查询教师表中某字段里面左侧最开始的一个字符。其它字符串函数用法类似

第二个示例:下面字符串练习的写法:

select charindex(‘be‘,‘aabecdefbeghi‘)  注意:字符串函数在练习的时候需要加上单引号


函数格式


功能描述


举例


ascii(character_expression)


返回字符串表达式中的第一个字符的ascii值(int型)


select ascii(‘bca’)返回98


char(integer_expression)


将ascii值转换为相应的字符,并返回该字符


select char(65)返回‘a’,

char(97)返回‘a’


charindex(expression1,

expression2[srart_location])


返回字符串中指定表达式的开始位置。如果指定srart_location,则表示从位置start_location  开始查找的字符串以返回其开始位置。如果没有匹配则返回0


charindex(‘be’,aabecdefbeghi)

返回3,be在后面字符串中的第几个

charindex(‘be’,’aabecdefbeghi’,4)返回9


left(character_expression

,integer_expression)


返回字符串character_exre

ssion 中从做边开始的in

teger_expression个字符


left(‘abcdef’,3)返回‘abc’


len(string_expression)左

right右


返回指定字符串表达式的字符(而不是字节)个数

其中不包含尾随空格


len(‘a bcdefg’)返回8


lower(character-_  express

ion)


将大写字符串数据转换为小写字符串数据后返回字符串表达式


lower(‘abcdefg’)返回‘abcdefg’


ltrim(character_expression)


返回删除起始空格之后的字符串表达式


ltrim(‘  abcdef’)返回‘abcdef’


nchar(integer_expression)


根据unicode标准的定义,返回具有指定的证书代码的unicode


nchar(197)返回’a’


patindex(‘%pattern%’,ex

pression)


返回指定表达式中某模式第一次出现的其实位置。如果在全部有效的文本和字符串数据类型中没有找大该模式,则返回零。可以使用通配符


patindex(‘%defg%’,‘abcdefghidefg’)返回4


quotename(‘character_str

ing’[,’quote_character’])


返回带有分隔符的unicode字符串


quotename(‘abcdef’,’’’’返回‘abcdef’,)

quotename(‘abcdef’,’(’)返回‘(abcdef)’


replace(str_expression1,

str_exppression2,

str_expression3)


用第三个表达式str_expression3替换第一个字符串表达式str_expression1中出现的所有第二个指定字符串表达式str_expression2的匹配项,并返回替换后的字符串表达式


replace(‘abcdefghicde’,’cd’,’china’)返回‘abchinaefghichinae’


reverse(character_expression)


将字符串表达式中的字符首尾翻转,然后返回反转后的字符串


reverse(‘abcdefg’)返回‘gfedcba’


richt(character_expression,

integer_expression)


返回字符串character_expression中从右边开始的inerger_expression  个字符


right(‘abcdef’,3)返回‘def’


rtrim(character_expression)


返回删除尾随空格之后的字符串表达式


rtrim(“     bcdef   “)返回‘abcdef’


space(integer_expression)


返回由integer_expression 个空格组成的字符


‘a’+space(4)+’b’返回‘a   b’


str(float_expression[,length

[,]])


返回由数字数据转换来的字符串数据


str(123.4588,10,4)返回‘123.4588’


stuff(character_expression,start,

length,character_expression)


在字符串character_expression中从位置start开始删除start,length个字符,然后又从该位置插入字符串character_expression,最后返回处理后的字符串


stuff(‘abcdefgh’,2,3,’xyz’)返回‘axyzefgh’


substring(expression,start

,length)


返回给定字符expression中的一个子串,该子串是从位置start开始,长度为length的字符串


substring(“abcdef’,2,4)返回‘bcde’


unicode(ncharacter_expres

sion,)


按照unicode标准的定义,返回输入表达式的第一个字符的整数值


unicode(n‘akergatan24’)

返回197


upper(character_expression)


返回小写字符串数据转换为大写的字符串表达式


upper(‘abcdefg‘)返回’abcefg‘

(3)日期相关的函数

获取当前日期时间---GETDATE( )

SQL语句:

SELECT GETDATE( )AS 当前日期和时间

DATEADD() 函数

用法:DATEADD() 函数在日期中添加或减去指定的时间间隔。

DATEADD(datepart,number,date)

datepart 参数可以是下列的值:


datepart


缩写



yy, yyyy


季度


qq, q



mm, m


年中的日


dy, y



dd, d



wk, ww


星期


dw, w


小时


hh


分钟


mi, n



ss, s


毫秒


ms


微妙


mcs


纳秒


ns

示例:

select DATEADD(DD,3,‘2015-2-5‘)

最后结果:

2015-02-08 00:00:00.000

DATEPART() 函数

用于提取一个日期/时间的单独部分,比如年、月、日、小时、分钟等等

示例:

select DATEPART(yyyy,‘2015-2-5‘)

第一个参数同上面表一样。

我们在看一个示例:

我们先学三个关键字:DECLARE 在SQlserver中表示定义一个变量,相当于说定义一个空盒子。以后我就可以往空盒子中装东西。SET:表示给变量赋上一值。类似于给盒子装上东西

最后一个关键词是PRINT 表示直接输出结果出来

案例:提取日期并输出日期  不要复制代码。自己动手写一下。

DECLARE @DTDATETIME;

DECLARE @YYNINT,@QQN INT,@MMN INT,@DYN INT,@DDN INT,@WKN INT,@DWN INT,@HHN INT,@MININT,@SSN INT,@MSN INT,@MCSN INT,@NAN INT;

SET @DT=GETDATE( );           --获取当前日期,时间

[email protected]=DATEPART (YY, @DT);   --提取年份

[email protected]=DATEPART (MM,@DT);  --提取月份

[email protected]=DATEPART (DD,@DT);   --提取日

[email protected]=DATEPART (QQ,@DT);   --提取季度

[email protected]=DATEPART (DY,@DT);    --提取当日在本年度中的天数

[email protected]=DATEPART (WK,@DT);    --提取周数

SET @DWN=DATEPART(DW,@DT);    --提取当前星期中的第几天

[email protected]=DATEPART (HH,@DT);     --提取小时数

[email protected]=DATEPART (MI,@DT);       --提取分数

[email protected]=DATEPART (SS,@DT);        --提取秒数

[email protected]=DATEPART (MS,@DT);      --提取毫秒数

[email protected]=DATEPART (MCS,@DT);   --提取微秒数

SET @NSN=DATEPART(NS,@DT);        --提取纳秒数

PRINT ‘年份:’+LTRIM(STR (@YYN));

PRINT ‘月份:’+LTRIM(STR (@MMN));

PRINT ‘日:’+LTRIM(STR (@DDN));

PRINT ‘季度:’+LTRIM(STR (@QQN));

PRINT ‘当前日在年中的第几天:’+LTRIM(STR(@DYN) );

PRINT ‘当前周在年中的第几几周:’+LTRIM(STR(@WKN) );

PRINT ‘当前日在星期中的第几天:’+LTRIM(STR(@DWN) );

PRINT ‘小时数:’+LTRIM(STR(@HHN) );

PRINT ‘分数:’+LTRIM(STR (@MIN));

PRINT ‘秒数:’+LTRIM(STR (@SSN));

PRINT ‘毫秒数:’+LTRIM(STR(@MSN) );

PRINT ‘微秒数:’+LTRIM(STR(@MCSN) );

PRINT ‘纳秒数:’+LTRIM(STR(@NSN) );

时间: 2024-10-06 04:28:43

Sqlserver基础教程系列4-一些函数的用法的相关文章

Sqlserver基础教程系列1:基础概念

什么是数数据库 严格地说,数据库是"按照数据结构来组织.存储和管理数据的仓库".在经济管理的日常工作中,常常需要把某些相关的数据放进这样的"仓库",并根据管理的需要进行相应的处理. 通俗地讲数据库就是存储数据的仓库 例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号.姓名.年龄.性别.籍贯.工资.简历等)存放在表中,这张表就可以看成是一个数据库.有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范

MongoDB基础教程系列--未完待续

最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作为目录篇,方便阅读,有问题大家一块交流哈.多谢大家关注,转载请注明出处,谢谢! MongoDB基础教程系列--第一篇 进入MongoDB世界 MongoDB基础教程系列--第二篇 MongoDB基本操作(一) MongoDB基础教程系列--第三篇 MongoDB基本操作(二) MongoDB基础教程

AxureRP7.0基础教程系列 部件详解水平线和垂直线 HORIZONTAL & VERTICAL LINES

原型库网站-讲师金乌原创发布,可自由转载,请注明出处! Axure中文官网:www.AxureRP.cn   <AxureRP7.0部件详解> 水平线和垂直线 HORIZONTAL & VERTICAL LINES 使用案例 将页面区块化 最常见的用法是将内容分解成几个部分,比如,讲页面分为 header 和 body. 编辑线条 添加箭头 线条可以通过工具栏中的箭头样式转换为箭头:选中线条,点击箭头样式,在下拉列表中选择箭头样式. 线宽.颜色和样式 线条可以添加颜色.设置宽度和添加样

基础教程系列之装系统篇

[科普]基础教程系列之装系统篇 鉴于每天有很多新人询问安装系统问题,我决定花一些时间来系统性的整理一下安装系统的步骤,带领新人一步步来安装好系统. 目录 0.前言 1.物质准备 2.制作启动盘 3.选择自己需要的系统 4.其他准备工作 5.进入win pe 6.举例进入win pe 7-1.确保正确安装系统的准备工作 7-2.确保正确安装系统的准备工作 8-1.使用原版镜像安装系统 8-2使用ghost安装系统 8-3使用nt6 hdd installer安装系统 9.重启进入操作系统 10.安

[js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法

[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上) [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下) [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上) [js高手之路]深入浅出webpack教程系

Python基础教程系列:七、字典(续)

不好意思,昨天有急事耽搁了,今天我们接着说字典.首先通过key往字典中添加三条记录.其中方括号中的那就是key,等式右边的就是value,别学完了序列后,总感觉中括号中的那是下角标. 那么字典的更新,包括增.删.改也都分别作了介绍.删除整个字典相对较少,毕竟实际工作中不像做练习,随便删了就可以.那么真想删除整个字典,del dict1即可.其中pop(),这不就相当于出栈操作么,取出来了也就相当于删除了. 字典操作: 1.字典比较:cmp(),这个比较起来也比较复杂,毕竟也不是完全数与数比大小或

AxureRP7.0基础教程系列 部件详解 文本框 Text field

原型库网站-讲师金乌原创发布,可自由转载,请注明出处! Axure中文官网:www.AxureRP.cn   <AxureRP7.0部件详解> Text Field 文本框(单行)使用案例 收集表格数据 文本框(单行)经常用于收集表格内容传递给其他表格或其他页面中的表格,还可以进行函数运算. 登陆框 文本框可以用作登陆体验,加入逻辑条件和多个用例还可以对登陆成功/失败进行模拟. 编辑文本框 文本框类型 文本框可以给定特殊的输入格式,主要用来调用移动设备上不同的键盘.可选格式:文本.密码.Ema

Python基础教程系列:七、字典

字典是Python语言中唯一的映射类型.映射类型不要求用数字值做索引就可以从一个容器中获取对应的数据项.你可以用键(key)直接映射到值,这就是为什么叫映射的原因,映射,我的理解就是索引,顺藤摸瓜就可以找到背后的幕后者.字典是Python中最强大的数据类型之一. 刚开始接触字典还是在Hadoop中的mapreduce,其实说白了就是键值对(key/value),所谓的索引通常是指key,而幕后者通常指的是value.每个key对应一个value,主要的好处是方面归类,而且按照key进行查找val

Python基础教程系列:九、文件操作

一.open()函数 open()以及file()(open()与file()等价,可以任意替换)提供了初始化输入/输出(I/O)操作的通用接口.open()函数成功打开一个文件后就会返回一个文件对象,说白了你就可以接着读写了,否则就bug了. 语法:file_object = open(file_name, access_mode='r', buffering=-1) 第一个参数是文件名或者路径(绝对或相对路径),第二个参数叫文件打开的模式,不写时默认是'r'模式.'r'模式是只读模式.'w'