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数据定义——模式与基本表操作
Apr 05 SQL Server
SQL SERVER中常用日期函数的具体使用
Apr 08 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQLServer中exists和except用法介绍
Dec 04 SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
SQL Server #{}可以防止SQL注入
May 11 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 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
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
详解js的作用域、预解析机制
2018/02/05 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
详解Python字典的操作
2019/03/04 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
优秀通讯员事迹材料
2014/01/28 职场文书
项目采购员岗位职责
2014/04/15 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
银行求职自荐信范文
2015/03/04 职场文书
民事辩护词范文
2015/05/21 职场文书
紫日观后感
2015/06/05 职场文书
庆元旦主持词
2015/07/06 职场文书
运动会广播稿300字
2015/08/19 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android