首页 > 数据库 > mysql教程 > 如何使用 CASE 和 IIF 在 SQL SELECT 语句中实现条件逻辑?

如何使用 CASE 和 IIF 在 SQL SELECT 语句中实现条件逻辑?

DDD
发布: 2025-01-22 15:06:14
原创
396 人浏览过

How Can I Implement Conditional Logic in SQL SELECT Statements using CASE and IIF?

掌握 SQL SELECT 语句中的条件逻辑:CASE 和 IIF

有效管理 SQL SELECT 语句中的条件逻辑对于数据操作和过滤至关重要。 虽然标准 SQL 中不提供直接的 IF...THEN 构造,但 CASE 语句和 IIF(在 SQL Server Denali 及更高版本中)提供了可靠的替代方案。

CASE 语句:您的 SQL 条件主力

CASE 语句反映了 IF...THEN 的功能,按顺序评估条件并根据第一个真实条件返回一个值。 其结构如下:

SELECT
  CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE default_value
  END AS <alias>,  -- Assign an alias to the result
  *
FROM <table_name>
登录后复制

考虑这个实际应用:

SELECT CAST(
  CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
  END AS bit) AS Saleable,  -- Casts the result as a BIT (Boolean)
  *
FROM Product
登录后复制

注意 CAST 运算符。 没有它,结果是一个整数(0或1);使用 CAST,它会转换为布尔值(TRUE 或 FALSE)。

IIF:简洁的条件选项 (SQL Server)

SQL Server 引入了 IIF(立即 If)语句,为 CASE 提供了更紧凑的替代方案:

SELECT IIF(condition, true_value, false_value) AS <alias>,
  *
FROM <table_name>
登录后复制

以下是它如何应用于我们的示例:

SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable,
  *
FROM Product
登录后复制

CASEIIF 都是在 SQL SELECT 查询中实现条件逻辑、实现动态数据操作和高效过滤不可或缺的工具。

以上是如何使用 CASE 和 IIF 在 SQL SELECT 语句中实现条件逻辑?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板