SQL Server中的逻辑函数介绍


Posted in SQL Server onMay 25, 2022

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 ;

SQL Server中的逻辑函数介绍

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逻辑函数的文章就介绍到这了。


Tags in this post...

SQL Server 相关文章推荐
SQL Server基本使用和简单的CRUD操作
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQL Server中交叉联接的用法详解
Apr 22 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
SQL Server2019数据库备份与还原脚本,数据库可批量备份
Nov 20 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
详解SQL报错盲注
Jul 23 SQL Server
SQL Server删除表中的重复数据
May 25 #SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 #SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 #SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 #SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 #SQL Server
SQL SERVER中的流程控制语句
May 25 #SQL Server
SQL Server中搜索特定的对象
May 25 #SQL Server
You might like
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PHP内置加密函数详解
2016/11/20 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
js中eval详解
2012/03/30 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
Python help()函数用法详解
2014/03/11 Python
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python打印不合法的文件名
2020/07/31 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
Python datetime 如何处理时区信息
2020/09/02 Python
flask项目集成swagger的方法
2020/12/09 Python
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
高一生物教学反思
2014/01/17 职场文书
副厂长岗位职责
2014/02/02 职场文书
环保专项行动方案
2014/05/12 职场文书
建筑结构施工求职信
2014/07/11 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技