Sql中一些函数/方法
Sqlserver
ISNULL(check_expression, replacement_value)
check_expression为null时取replacement_value的值
CASE case_value
WHEN when_value THEN statement_list
ELSE statement_list
END
case具体来说算是特殊语句,sqlserver中似乎不存在和mysql中的IF(expr,v1,v2)类似函数,可以使用此语句替代,case_value写的时候个人觉得类似于java中的switch语句,不写的时候则直接去判断WHEN后面表达式的真假,类似ifelse语句,WHEN语句可以存在多条
COALESCE(expression [,...n])
COALESCE用于取多个表达式中非null的值,参数可传多个表达式,可以取代ISNULL的嵌套使用
ROW_NUMBER() OVER ([PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ...)
ROW_NUMBER函数可用根据PARTITION BY后的字段对数据进行分组后进行排序,然后给每条记录打上序号,每组内的序号从1开始,此函数可用于根据多个字段去重,或者取每一个分组的前几条数据
select count(case when s.sex='男' then 1 else null end)as 男生人数 ,count(case when s.sex='女' then 1 else null end)as 男生人数 from student s
count()、sum()函数内加条件可以只统计满足条件的数据
工作遇到一点就更新一点