-- 字符串函数
--1,LEN:返回一个字符串的字符数
--2,DataLength:返回一个字符串的字节数
select LEN('中国'),LEN('abc123!')
select LEN('abc'+'1'),LEN('abc')
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:字符替换函数
--12,Ltrim 和 Rtrim:去掉字符串左边或右边全部空格
select STUFF('湖南武汉',2,1,'北')
select STUFF('中国长沙',3,0,'武汉')
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:日期比较函数
-- 返回每笔交易已经发生了多少天
--5,dateADD:日期改变函数
use BankDB
select DAtediff(dd,TransDate,GETDATE()) from TransInfo
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('张三丰')
来源: http://www.bubuko.com/infodetail-2461347.html