当前位置:网站首页>SQL Server 函数
SQL Server 函数
2022-06-26 05:46:00 【weixin_47254122】
撰写时间:2022 年 6 月 8日
SQL Server 函数
SQL中包含以下几种类型的函数:
1、聚合函数:返回汇总值。
2、类型转换函数:将一种数据类型转换为另一种。
3、日期函数:处理日期和时间。
4、数学函数:执行算术运算。
5、字符串函数:对字符串、二进制数据或表达执行操作。
6、系统函数:从数据库返回在SQL Server中的值、对象或设置的特殊信息。
一、聚合函数:
它对其应用的每个行集返回一个值。AVG(表达式) 返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。返回每个产品类别的平均价格:
SELECT
category_name,
CAST(ROUND(AVG(list_price),2) AS DEC(10,2))
avg_product_price
FROM production.products p
INNER JOIN production.categories c
ON c.category_id = p.category_id
GROUP BY
category_name
ORDER BY
category_name;
COUNT(表达式) 返回表达式中非NULL值的数量。可用于数字和字符列。统计有多少个客户电话
select COUNT(phone) from sales.customers
COUNT(*) 返回表中的行数(包括有NULL值的列)。返回每个品牌和产品数量。 此外,它仅返回产品数量大于 20 的品牌:
SELECT
brand_name,
COUNT() product_count
FROM production.products p
INNER JOIN production.brands c
ON c.brand_id = p.brand_id
GROUP BY brand_name
HAVING
COUNT() > 20
ORDER BY
product_count DESC;
MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。以下语句获取每个品牌的品牌名称和最高价格:
SELECT
brand_name,
MAX(list_price) max_list_price
FROM production.products p
INNER JOIN production.brands b
ON b.brand_id = p.brand_id
GROUP BY
brand_name
ORDER BY
brand_name;
二、类型转换函数:
把字符串’100.125456’ 转换为 数字类型,保留2位小数
select CONVERT(numeric(10,2) ,‘100.125456’);
把字符串’100.125456’ 转换为 数字类型,保留3位小数
select cast(‘100.125456’ as numeric(10,3))
字符串转时间,返回年
select year(cast(‘2022-03-13 12:00:30’ as date))
三、日期函数:
由于日期不能直接执行算术函数,所以日期函数就十分有用。GETDATE() 当前的系统日期。
select GETDATE() --结果:2019-05-07 18:34:27.343
DATEADD(日期部分,number,date) 返回带有指定数字(number)的日期(date),该数字添加到指定的日期部分(datepart)
select DATEADD(dd, 5, getdate()) --增加5天时间
DATEDIFF(日期部分,date1,date2) 返回两个日期中指定的日期部分之间的差值。
select DATEDIFF(mm, ‘2010-1-1’, ‘2010-3-1 00:00:00’) --结果:2
DATENAME(日期部分,date) 返回日期中日期部分的字符串形式。
select DATENAME(dw,GETDATE()) --结果:星期二
注:DATENAME 和 DATEPART 的区别,返回的值类型不同,一个是VARCHAR一个是INT,另外就是星期会用本地语言来表示
四、数字函数:
对数字值执行代数运算。
ABS(num_expr) 返回数值表达式的绝对值。
select ABs(-1.2) --返回绝对值1.2
FLOOR(num_expr) 返回小于或等于数值表达式的最大整数
select floor(1.2) --返回1
CEILING(num_expr) 返回大于或等于数值表达式的最小整数
select CEILING(1.2) --返回2
RAND([seed]) 随机返回的到0-1之间的近似浮点值,可以对seed指定为整数表达式(可选)。
select round(rand()*40,0)+60 --随机生成60-100的整数
ROUND(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五入后的值。
select ROUND(list_price,1) from production.products
五、字符串函数:
可用于binary 和varbinary数据类型列,但主要用于char和varchar数据类型。Expr1+expr2 返回两个表达式的组合形式的字符串。注意int类型
select ‘b’+‘a’;
select ‘b’+1;
LEN(char_expr) 返回字符表达式的长度。
select len(‘123456’)
LOWER(char_expr) 将字符表达式全部转换为小写。
select LOWER(‘ABc’)
LTRIM(char_expr) 返回删除掉前面空格的字符表达式。
select LTRIM(’ abc d e’)
六、系统函数:
用于返回元数据或配置设置。COALESCE(expr1,expr2, xprN) 返回第一个非NULL表达式。
select coalesce(null,1,1+1)
select coalesce(2,null,1+2)
select coalesce(null,null,1+2)
DATALENGTH(‘expr’) 返回任何数据类型的实际长度。
select DATALENGTH(‘中’); --2字节
select DATALENGTH(‘A’); – 1字节
ISNULL(expr,value) 使用指定的值替换的NULL表达式。
select isnull(phone,‘unknow’) from sales.customers;
NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null,否则返回第一个表达式。
select nullIf(len(first_name),len(last_name)) from sales.customers
row_number分页row_number的用途的非常广泛,一般可以用来实现web程序的分页,他会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列,或者几列进行排序才能生成序号
SELECT * FROM(
SELECT row_number() OVER(
ORDER BY list_price )
AS rowNum, product_id, product_name, list_price
FROMproduction.products ) a
WHERE rowNum > (3 -1) * 10
AND rowNum <= 3 * 10
边栏推荐
猜你喜欢

怎么把平板作为电脑的第二扩展屏幕

Kolla ansible deploy openstack Yoga version

【C语言】深度剖析数据在内存中的存储

家庭记账程序(第二版 加入了循环)

How Navicat reuses the current connection information to another computer

Using Jenkins to perform testng+selenium+jsup automated tests and generate extendreport test reports

Consul服务注册与发现

REUSE_ALV_GRID_DISPLAY 事件实现(DATA_CHANGED)

Introduction to alluxio

小程序如何关联微信小程序二维码,实现二码聚合
随机推荐
When was the autowiredannotationbeanpostprocessor instantiated?
睛天霹雳的消息
Owasp-top10 in 2021
家庭记账程序(第一版)
Recursively traverse directory structure and tree presentation
Uni app ceiling fixed style
小程序如何关联微信小程序二维码,实现二码聚合
【ARM】讯为rk3568开发板buildroot添加桌面应用
Gram 矩阵
Leetcode513. Find the value in the lower left corner of the tree
A new journey
Pytorch (network model training)
What management systems (Updates) for things like this
通俗易懂的从IDE说起,再谈谈小程序IDE
9 common classes
Kolla ansible deploy openstack Yoga version
uniCloud云开发获取小程序用户openid
A new explanation of tcp/ip five layer protocol model
操作符的优先级、结合性、是否控制求值顺序【详解】
pytorch(网络模型)