编辑
2025-09-22
SQLSERVER
00

目录

数据类型转换
CAST函数
CONVERT函数
实例数据表 - Employees
使用CAST和CONVERT
CASE表达式
CASE语法
使用CASE表达式
总结

在数据库管理和数据分析中,数据类型转换和条件逻辑是非常重要的概念。数据类型转换允许你将一种数据类型转换为另一种,以满足特定操作的要求。而CASE表达式提供了执行条件逻辑,根据数据满足的条件返回不同结果。在本文中,我们将详细探讨这两个概念,并通过实例演示它们的应用。

数据类型转换

在SQL中,数据类型转换通常使用 CASTCONVERT 函数来实现。这些函数可以将一个数据类型转换成另一个数据类型,例如,将字符串转换为整数或将日期转换为字符串等。

CAST函数

CAST 函数的语法如下:

SQL
CAST(expression AS data_type)

其中,expression 是要转换的值或字段,data_type 是目标数据类型。

CONVERT函数

CONVERT 函数的语法如下:

SQL
CONVERT(data_type, expression, style)

data_type 是目标数据类型,expression 是要转换的值或字段,style 是可选的格式代码,用于日期和时间数据类型的转换。

实例数据表 - Employees

假设我们有一个名为 Employees 的表,记录了员工的基本信息和工资。

EmployeeIDNameStartDateSalary
1John2021-04-0555000.00
2Jane2021-07-1262000.00
3Robert2022-01-1548000.00

表结构

SQL
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name NVARCHAR(100), StartDate DATE, Salary DECIMAL(10, 2) );

测试数据

SQL
INSERT INTO Employees (EmployeeID, Name, StartDate, Salary) VALUES (1, 'John', '2021-04-05', 55000.00), (2, 'Jane', '2021-07-12', 62000.00), (3, 'Robert', '2022-01-15', 48000.00);

我们可能需要将 StartDate 从日期类型转换为字符串类型,或者将 Salary 从浮点数转换为整数。

使用CAST和CONVERT

SQL
SELECT EmployeeID, Name, CAST(StartDate AS VARCHAR(10)) AS StartDateStr, CONVERT(INT, Salary) AS SalaryInt FROM Employees;

转换后的结果可能如下:

EmployeeIDNameStartDateStrSalaryInt
1John2021-04-0555000
2Jane2021-07-1262000
3Robert2022-01-1548000

image.png

在这个例子中,我们将 StartDate 转换为了字符串格式,将 Salary 转换为了整数格式。

CASE表达式

CASE表达式允许在SQL查询中执行if-then-else类型的逻辑,它可以在SELECT列表、WHERE子句和其他语句中使用。

CASE语法

SQL
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END

根据条件返回相应的结果,如果没有任何条件满足,则返回默认结果。

使用CASE表达式

假设我们想要根据员工的 Salary 给出一个评级:

  • 评级 A:Salary > 60000
  • 评级 B:Salary <= 60000 且 Salary > 50000
  • 评级 C:Salary <= 50000

我们可以使用CASE表达式来实现:

SQL
SELECT EmployeeID, Name, Salary, CASE WHEN Salary > 60000 THEN 'A' WHEN Salary > 50000 THEN 'B' ELSE 'C' END AS Rating FROM Employees;

结果可能如下:

EmployeeIDNameSalaryRating
1John55000.00B
2Jane62000.00A
3Robert48000.00C

image.png

在这个例子中,我们根据员工的工资给出了一个评级,这有助于快速了解员工的薪资水平。

总结

数据类型转换和CASE表达式是SQL中非常有用的工具。数据类型转换可以帮助我们将数据转换成所需的格式,以便进行进一步的操作或展示。而CASE表达式则提供了强大的条件逻辑功能,允许我们根据数据满足的不同条件返回不同的结果。掌握这些技能可以在处理复杂查询时为我们提供极大的灵活性和控制。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!