–字符串函数
–1、LEN:返回一个字符串的字符数
select LEN(‘中国’),LEN(‘abc123!’)
select LEN(‘abc ‘+’1’),LEN(‘ abc’)
–2、DataLength:返回一个字符串的字节数
select DATALENGTH(‘中国’),DATALENGTH(‘abc123!’)
–3、Right、left :返回一个字符串的右边或左边的一部分字符
select RIGHT(‘abcdef’,3),LEFT(‘abcdef’,3)
–4、Substring:字符串截取函数 SQL的下标从1开始
select SUBSTRING(‘abcdef’,2,3)
–5、charIndex:字符串查找函数
select CHARINDEX(‘a’,’bcadadfd’,1)–’查找什么‘,‘具体’,查找第几个
–6、UPPER:字母大写转换函数
–7、LoWER:字母小写转换函数
select UPPER(‘abc123’),LOWER(‘ABc123中!’)
–8、SPACE:产生空格函数
select len(‘abc’ +SPACE(10)+’123′)
–9、replicate:字符串重复函数
select REPLICATE(‘abc ‘,3)
–10、replace:字符替换函数
select REPLACE(‘oIoo000oooo’,’o’,’0′)–后两个双引号表示:把什么替换成什么
–11、Stuff:字符替换函数
select STUFF(‘湖南武汉’,2,1,’北’)
select STUFF(‘中国长沙’,3,0,’武汉’)
–12、Ltrim和Rtrim:去掉字符串左边或右边全部空格
select LEN(LTRIM(‘ abc d ‘)),Len(RTRIM(‘ abc d ‘))
–13、Str:将数值转换为字符串函数
select STR(12345.7654,5,2) –8位2位小数位
–14、char:将一个ASCII值转换为一个字符
select CHAR(69),ASCII(‘*’)
–日期函数
–1、getdate():返回服务器上当前时间
select GETDATE()
–2、datepart:返回一个日期的一部分值(整型)
–3、datename:返回一个日期的一部分值(字符串)
–返回一周的第几天
select DATEPART(DW,GETDATE()),DATENAME(DW,GETDATE())
–返回一年的第几周
select DATEPART(WEEK,GETDATE()),DATENAME(WEEK,GETDATE())
–4、datediff:日期比较函数
–返回每笔交易已经发生了多少天
use BankDB
select DAtediff(dd,TransDate,GETDATE()) from TransInfo
–5、dateADD:日期改变函数
select DATEADD(DAY,2,GETDATE())
–自定义一个函数,根据学员的姓名来获取学员的两科平均成绩
if OBJECT_ID(‘AvgScore’) is not null
drop function AvgScore
go
create function AvgScore(@name varchar(50))
returns decimal as
begin
declare @stuId decimal=0
select @stuId=StuId from StuInfo where StuName =@name
declare @m decimal=0
select @m=AVG(WriteExam+LabExam)/2 from Exam where @stuId=StuId
return @m
end
go
select dbo.AvgScore(‘张三丰’)