use master
--数据库内置函数
select * from sys.all_objects
--聚合函数
select
N'总数' = COUNT(*),
N'最大值' = MAX(schema_id),
N'最小值' = MIN(schema_id),
N'平均值' = AVG(schema_id),
N'方差' = STDEV(schema_id)
from sys.all_objects
go
--配置函数
select
N'语言标识符' = @@LANGID,
N'语言名称' = @@LANGUAGE,
N'系统版本号' = @@VERSION,
N'服务名称' = @@SERVICENAME,
N'服务器名称' = @@SERVERNAME
go
--数学函数
select
N'自然对数' = LOG(10),
N'指数' = EXP(12),
N'符号' = SIGN(2),
N'圆周率' = PI(),
N'正弦' = SIN(PI()/2.0),
N'余弦' = COS(PI()/2.0)
go
--随机数
select
N'随机数' = RAND()
go
use inews
--排名函数
select Comment.Comment_ID, Comment.Comment_News_ID,
ROW_NUMBER() over( order by Comment.Comment_News_ID) as row_number,
rank() over ( order by Comment.Comment_News_ID) as rank,
dense_rank() over( order by Comment.Comment_News_ID ) as dense_rank
from Comment
--row_number() 按规则排列 每条信息一个序号 无差别
--rank() 按规则排列 每条信息一个序号 相同信息相同序号 但计数器加1
--dense_rank() 按规则排列 每条信息一个序号 相同信息相同序号 但计数器不加1
go
--字符串处理函数
select Comment.Comment_News,
N'字符串长度' = LEN(Comment.Comment_News),
N'字符串截取' = SUBSTRING(Comment.Comment_News, 1, 3),
N'字符串复制' = REPLICATE(Comment.Comment_News, 3),
N'字符串替换' = replace(Comment.Comment_News,'test2', '这里被替换了')
from Comment
go
--case when then 流程控制
select N'case 分支'
= case Comment.Comment_Name
when '小剑' then N'逗比'
else N'大神'
end
from Comment
go