SQL Server中的逻辑函数介绍

 更新时间:2022年05月24日 11:21:12   作者:springsnow  
这篇文章介绍了SQL Server中的逻辑函数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

IIF: 根据布尔表达式计算为 true 还是 false,返回其中一个值。

IIF 是一种用于编写 CASE 表达式的快速方法。 它将传递的布尔表达式计算为第一个参数,然后根据计算结果返回其他两个参数之一。也即,如果布尔表达式为 true,则返回 true_value;如果布尔表达式为 false 或未知,则返回 false_value。 true_value 和 false_value 可以是任何类型。

语法:

IIF ( boolean_expression, true_value, false_value )

举例:

DECLARE @a int = 45, @b int = 40;  
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;

CHOOSE: 从值列表返回指定索引处的项。

CHOOSE 像索引一样进入数组中,其中,数组由跟在索引参数之后的各参数组成。 索引参数确定将返回以下哪些值。从 1 开始的索引

语法:

CHOOSE ( index, val_1, val_2 [, val_n ] )

举例:下面的示例从所提供的值列表中返回第三项。

SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;  --返回Developer

举例:以下示例返回雇佣员工时的季度。 MONTH 函数用于从 HireDate 列返回月份值。

USE AdventureWorks2012;  
GO  
SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                                                  'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired  
FROM HumanResources.Employee  
WHERE  YEAR(HireDate) > 2005  
ORDER BY YEAR(HireDate);

COALESCE: 按顺序计算变量并返回第一个不等于 NULL 的第一个表达式的当前值

例如,SELECT COALESCE(NULL, NULL, 'third_value', 'fourth_value'); 返回第三个值,因为第三个值是首个为非 Null 的值。如果所有参数都为 NULL,则 COALESCE返回 NULL

语法:

COALESCE ( expression [ ,...n ] )

举例:

SELECT Name, Color, ProductNumber, COALESCE(Color, ProductNumber) AS FirstNotNull FROM Products ;

NULLIF:如果两个指定的表达式相等,则返回空值。如果两个表达式不相等,则 NULLIF 返回第一个 expression 的值。

例如,SELECT NULLIF(4,4) AS Same, NULLIF(5,7) AS Different; 为第一列(4 和 4)返回 NULL,因为两个输入值相同。 第二列返回第一个值 (5),因为两个输入值不同。

举例:

SELECT AVG(NULLIF(COALESCE(current_year, previous_year), 0.00)) AS 'Average Budget' FROM budgets;

到此这篇关于SQL Server逻辑函数的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Sql Server 死锁的监控分析解决思路

    Sql Server 死锁的监控分析解决思路

    本文主要介绍了SQL SERVER 死锁的监控分析解决思路。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 关于sql server批量插入和更新的两种解决方案

    关于sql server批量插入和更新的两种解决方案

    对于sql 来说操作集合类型(一行一行)是比较麻烦的一件事,而一般业务逻辑复杂的系统或项目都会涉及到集合遍历的问题,通常一些人就想到用游标,这里我列出了两种方案,供大家参考
    2013-04-04
  • 使用row_number()实现分页实例

    使用row_number()实现分页实例

    或许大家不知道,其实使用row_number()是可以实现分页的,下面有个不错的示例,大家可以尝试操作下
    2013-11-11
  • sql语句之数据操作介绍

    sql语句之数据操作介绍

    表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化。因此如果查询语句不需要索引,就应该删除无用的索引以提高效率。
    2013-03-03
  • .Net下执行sqlcmd的方法

    .Net下执行sqlcmd的方法

    遇到这样一个问题:程序实现创建sqlserver 端点,添加webmethod,删除webmethod,如果直接用ado.net 的sqlhelp 实现,总是报错,后来想到了用sqlcmd
    2010-06-06
  • sql 普通行列转换

    sql 普通行列转换

    说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
    2009-05-05
  • insert select与select into 的用法使用说明

    insert select与select into 的用法使用说明

    将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了
    2011-12-12
  • SQLServer或Oracle卸载不完全导致安装失败的解决办法

    SQLServer或Oracle卸载不完全导致安装失败的解决办法

    这篇文章主要介绍了SQLServer或Oracle卸载不完全导致安装失败的解决办法,本文归根结底的办法就是利用cmd命令行将未卸载完全的插件或程序进行完美卸载,文中介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • Sql Server datetime问题

    Sql Server datetime问题

    SQL SERVER数据库用datetime类型的时候 需要注意的地方
    2009-03-03
  • SQL Server DATEDIFF() 函数用法

    SQL Server DATEDIFF() 函数用法

    这篇文章主要介绍了SQL Server DATEDIFF() 函数的定义和用法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论