您的位置:首页 > 数据库

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

2015-02-05 13:50 661 查看
(1)聚合函数:聚合分析是指对数据表中的一列或多列所进行的统计分析
1、统计计数函数---COUNT( ),调用方式可归结为三种:
COUNT(*) SELECT COUNT(*) AS 当前表的总行数 FROM STUDENT5COUNT(ALLCOLUMN) SELECT COUNT(S_AVGRADE) AS 参加考试的人数 FROM STUDENT5COUNT(DISTINCTCOLUMN) SELECT COUNT(DISTINCT S_DEPT) AS 不同系别的个数 FROM STUDENT52、求和函数---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 STUDENT54、最大/最小函数---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( ); --获取当前日期,时间 SET@YYN=DATEPART (YY, @DT); --提取年份 SET@MMN=DATEPART (MM,@DT); --提取月份 SET@DDN=DATEPART (DD,@DT); --提取日 SET@QQN=DATEPART (QQ,@DT); --提取季度 SET@DYN=DATEPART (DY,@DT); --提取当日在本年度中的天数 SET@WKN=DATEPART (WK,@DT); --提取周数 SET @DWN=DATEPART(DW,@DT); --提取当前星期中的第几天 SET@HHN=DATEPART (HH,@DT); --提取小时数 SET@MIN=DATEPART (MI,@DT); --提取分数 SET@SSN=DATEPART (SS,@DT); --提取秒数 SET@MSN=DATEPART (MS,@DT); --提取毫秒数 SET@MCSN=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) );

本文出自 “读书屋” 博客,请务必保留此出处http://jiefei.blog.51cto.com/6994042/1611915
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: