STLG_02_32_SQL Server常用函数

SQL Server 提供了丰富的内置函数,用于处理数据、执行计算、格式化输出、日期操作等。以下是一些常用的 SQL Server 函数,按类别进行分类:

1. 聚合函数

这些函数用于对一组值进行计算并返回单个值。

  • COUNT():计算行数。

    SELECT COUNT(*) FROM Employees;
    
  • SUM():计算数值列的总和。

    SELECT SUM(Quantity) FROM Orders;
    
  • AVG():计算数值列的平均值。

    SELECT AVG(Salary) FROM Employees;
    
  • MIN():返回列中的最小值。

    SELECT MIN(Salary) FROM Employees;
    
  • MAX():返回列中的最大值。

    SELECT MAX(Salary) FROM Employees;
    

2. 字符串函数

这些函数用于操作和处理字符串数据。

  • CONCAT():连接两个或多个字符串。

    SELECT CONCAT(FirstName, ' ', LastName) AS FullName FROM Employees;
    
  • SUBSTRING():提取子字符串。

    SELECT SUBSTRING(ProductName, 1, 5) FROM Products;
    
  • LEN():返回字符串的长度。

    SELECT LEN(ProductName) FROM Products;
    
  • LOWER():将字符串转换为小写。

    SELECT LOWER(ProductName) FROM Products;
    
  • UPPER():将字符串转换为大写。

    SELECT UPPER(ProductName) FROM Products;
    
  • TRIM():去除字符串两端的空格。

    SELECT TRIM(ProductName) FROM Products;
    
  • REPLACE():替换字符串中的指定字符。

    SELECT REPLACE(ProductName, 'old', 'new') FROM Products;
    

3. 日期和时间函数

这些函数用于处理日期和时间数据。

  • GETDATE():返回当前日期和时间。

    SELECT GETDATE();
    
  • DATEADD():在日期上添加指定的时间间隔。

    SELECT DATEADD(day, 5, OrderDate) FROM Orders;
    
  • DATEDIFF():计算两个日期之间的差异。

    SELECT DATEDIFF(day, OrderDate, ShippedDate) FROM Orders;
    
  • YEAR():提取日期的年份。

    SELECT YEAR(OrderDate) FROM Orders;
    
  • MONTH():提取日期的月份。

    SELECT MONTH(OrderDate) FROM Orders;
    
  • DAY():提取日期的日。

    SELECT DAY(OrderDate) FROM Orders;
    

4. 数学函数

这些函数用于执行各种数学计算。

  • ABS():返回数值的绝对值。

    SELECT ABS(-10);
    
  • CEILING():返回大于或等于指定数值的最小整数。

    SELECT CEILING(4.3);
    
  • FLOOR():返回小于或等于指定数值的最大整数。

    SELECT FLOOR(4.7);
    
  • POWER():返回指定数值的幂次方。

    SELECT POWER(2, 3);
    
  • ROUND():将数值四舍五入到指定的小数位数。

    SELECT ROUND(123.456, 2);
    
  • SQRT():返回数值的平方根。

    SELECT SQRT(16);
    

5. 转换函数

这些函数用于数据类型的转换。

  • CAST():将一种数据类型转换为另一种数据类型。

    SELECT CAST('123' AS INT);
    
  • CONVERT():与 CAST 类似,但提供了更多的格式化选项。

    SELECT CONVERT(VARCHAR, GETDATE(), 101);
    

6. 逻辑函数

这些函数用于执行逻辑操作。

  • ISNULL():如果表达式为 NULL,则返回指定的值。

    SELECT ISNULL(Total, 0) FROM Orders;
    
  • IIF():根据条件返回两个值之一。

    SELECT IIF(Salary > 5000, 'High', 'Low') FROM Employees;
    

7. 系统函数

这些函数用于获取系统信息。

  • USER_NAME():返回当前用户名。

    SELECT USER_NAME();
    
  • HOST_NAME():返回客户端的主机名。

    SELECT HOST_NAME();
    
  • DB_NAME():返回当前数据库的名称。

    SELECT DB_NAME();
    

8. 排名函数

这些函数用于对结果集进行排名和排序。

  • ROW_NUMBER():为每一行分配一个唯一的行号。

    SELECT ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNum, FirstName, Salary 
    FROM Employees;
    
  • RANK():为每一行分配一个排名,相同的值共享相同的排名。

    SELECT RANK() OVER (ORDER BY Salary DESC) AS Rank, FirstName, Salary 
    FROM Employees;
    
  • DENSE_RANK():与 RANK 类似,但不跳过排名。

    SELECT DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank, FirstName, Salary 
    FROM Employees;
    

9. 窗口函数

窗口函数用于执行跨越一组行的计算。

  • SUM() OVER:计算窗口内的总和。

    SELECT FirstName, Salary, SUM(Salary) OVER (PARTITION BY DepartmentID) AS DeptTotalSalary
    FROM Employees;
    
  • AVG() OVER:计算窗口内的平均值。

    SELECT FirstName, Salary, AVG(Salary) OVER (PARTITION BY DepartmentID) AS DeptAvgSalary
    FROM Employees;
    

结论

SQL Server 提供了丰富的内置函数,涵盖了数据处理、计算、日期操作、字符串处理等多个方面。掌握这些函数可以帮助你更高效地处理和分析数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值