SQL SELECT 语句中的条件逻辑
SQL 的 SELECT
语句不直接支持 IF...THEN
构造。 但是,有两种有效的替代方法可用于实现条件逻辑:CASE
语句和 IIF
函数(在某些 SQL 方言中可用)。
利用 CASE 语句
CASE
语句反映了其他编程语言中 IF...THEN
的功能。它按顺序评估条件并根据满足的第一个条件返回一个值。
语法:
<code class="language-sql">SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS new_column_name, other_columns FROM your_table;</code>
示例:
<code class="language-sql">SELECT CASE WHEN IsActive = 'Yes' THEN 'Active' WHEN IsActive = 'No' THEN 'Inactive' ELSE 'Unknown' END AS Status, * FROM Users;</code>
此查询添加“状态”列,根据 IsActive
列的值分配“活动”、“非活动”或“未知”。
使用 IIF 函数 (SQL Server)
IIF
函数(在 SQL Server 2012 中引入)提供了一种简洁的方法来处理 SELECT
语句中的条件逻辑。
语法:
<code class="language-sql">IIF(condition, true_result, false_result)</code>
示例:
<code class="language-sql">SELECT IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory, * FROM Orders;</code>
此示例创建一个“OrderCategory”列,根据 OrderTotal
将订单分类为“高价值”或“低价值”。 请注意,IIF
特定于 SQL Server,在其他数据库系统中可能不可用。 为了更广泛的兼容性,通常首选 CASE
语句。
以上是如何在SQL SELECT语句中实现条件逻辑?的详细内容。更多信息请关注PHP中文网其他相关文章!