SQL Server中COALESCE函数的用法
在SQL Server中COALESCE函数,会返回其参数中第一个不为NULL的参数,效果如下:
SELECT COALESCE(NULL,NULL,N'A',NULL,NULL)
结果:

SELECT COALESCE(NULL,NULL,N'A',N'B',N'C',NULL)
结果:

使用COALESCE函数时要注意,其参数必须是相同的类型,例如下面的例子中COALESCE函数的参数中,既有字符串类型又有数字类型,就会报错:
SELECT COALESCE(NULL,NULL,N'A',N'B',100,NULL)
结果:

此外,如果COALESCE函数的所有参数都为常量NULL,那么其也会报错:
SELECT COALESCE(NULL,NULL,NULL)
结果:

但是如果COALESCE函数的参数中有表达式、变量、表的列名等,即便是COALESCE函数的参数都返回NULL也不会报错:
SELECT COALESCE(NULL,NULL+1,NULL)
结果:

DECLARE @v1 NVARCHAR(50)=NULL
DECLARE @v2 NVARCHAR(50)=NULL
DECLARE @v3 NVARCHAR(50)=NULL SELECT COALESCE(NULL,@v1,@v2,@v3,NULL)
结果:

CREATE TABLE #Demo
(
Col1 NVARCHAR(50),
Col2 NVARCHAR(50),
Col3 NVARCHAR(50)
) INSERT INTO #Demo(Col1,Col2,Col3) VALUES(NULL,NULL,NULL) SELECT COALESCE(NULL,Col1,Col2,Col3,NULL) FROM #Demo
结果:

SQL Server中COALESCE函数的用法的更多相关文章
- sql server中quotename()函数的用法(转载)
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法.1.语法: quotename('character_string'[,'quote_ch ...
- sql server中QUOTENAME()函数的用法
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法. 1.语法: quotename('character_string'[,'quote_c ...
- SQL Server中排名函数row_number,rank,dense_rank,ntile详解
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_n ...
- MS SQL Server的COALESCE函数
MS SQL Server的COALESCE函数是从一系列表达式中返回第一个NOT NULL的值. 检查[B],[Q],[S],[T],[U]的值: 检查顺序[B]->[Q]->[S]-& ...
- Oracle中INSTR函数与SQL Server中CHARINDEX函数
Oracle中INSTR函数与SQL Server中CHARINDEX函数 1.ORACLE中的INSTR INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 说明:返回 ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- Oracel中coalesce函数的用法
1.coalesce函数的用法 1.1 取出第一个不为空的列的数据.
- SQL Server中row_number函数的简单用法
一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是R ...
随机推荐
- (原)netbeans中使用libtorch
转载请注明处处: https://www.cnblogs.com/darkknightzh/p/11479330.html 说明:第一种方式在netbeans中无法debug代码,设置了断点也不会在断 ...
- selenium 框架
结构如下: test_project|--logs|---pages |---register_page.py| |---base_page.py|---test_case |- ...
- Jupyter 中的 10 个魔法函数
1)%pwd 于显示Jupyter当前的工作空间. 2)%hist 显示当前Jupyter中,所有运行过的历史代码. 3)%who 显示当前Jupyter环境中的所有变量或名称. 4)%reset 删 ...
- html中常用的转义字符总结
不断行的空格 半方大的空格 全方大的空格 < 小于 < > 大于 > & &符号 " 双引号" © 版权符号© ...
- USB设备驱动程序1
目的:USB鼠标用作按键,左键相当于字母L,右键相当于字母S,中键相当于Enter.如何来实现?用到输入子系统:1)分配input_dev2)设置3)注册4)硬件相关操作对于USB鼠标来说,硬件操作应 ...
- Python并发编程内容回顾
Python并发编程内容回顾 并发编程小结 目录 • 一.到底什么是线程?什么是进程? • 二.Python多线程情况下: • 三.Python多进程的情况下: • 四.为什么有这把GIL锁? • 五 ...
- python基础之九:文件操作
1.绝对路径与相对路径 path1 = "D:\orders.txt" # 绝对路径:包含根地址的路径 path2 = "homework.py" # 相对路径 ...
- VS中的Modules窗口
当我在别人的机器上调试问题时,我做的第一件事就是查看modules窗口.按版本排序并看到一个不属于的dll可以帮助立即诊断配置问题,并节省许多调试痛苦. 下面介绍下各列的意思: Name:模块名称. ...
- plv8 中使用 eval 函数执行表达式计算
在js 开发中我们都说eval 函数是邪恶的,但是此函数也有好多妙用,以下是几个简单的案例 eval 执行基于js 的表达式计算 比如我们有以下表 CREATE TABLE rules ( id ...
- 使用Python3进行AES加密和解密 输入的数据
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...