COALESCE

SELECT * FROM EMPLOYEE_PAY_TBL;
+-----------+---------------+------------+----------+-----------------+----------+---------+
| EMP_ID    | POSITION      | DATE_HIRE  | PAY_RATE | DATE_LAST_RAISE | SALARY   | BONUS   |
+-----------+---------------+------------+----------+-----------------+----------+---------+
| 213764555 | SALES MANAGER | 2004-08-14 |     NULL | 2009-08-01      | 30000.00 | 2000.00 |
| 220984332 | SHIPPER       | 2006-07-22 |    11.00 | 1999-07-01      |     NULL |    NULL |
| 311549902 | MARKETING     | 1999-05-23 |     NULL | 2009-05-01      | 40000.00 |    NULL |
| 313782439 | SALSEMAN      | 2007-06-28 |     NULL | NULL            | 20000.00 | 1000.00 |
| 442346889 | TEAM LEADER   | 2000-06-17 |    14.75 | 2009-06-01      |     NULL |    NULL |
| 443679012 | SHIPPER       | 2001-01-14 |    15.00 | 1999-01-01      |     NULL |    NULL |
+-----------+---------------+------------+----------+-----------------+----------+---------+

SELECT EMP_ID, COALESCE(BONUS, SALARY, PAY_RATE) FROM EMPLOYEE_PAY_TBL;
-- 接受一个数据集,依次检查其中每一个值,直到发现一个非NULL值。如果没有找到非NULL值,返回一个NULL值
+-----------+-----------------------------------+
| EMP_ID    | COALESCE(BONUS, SALARY, PAY_RATE) |
+-----------+-----------------------------------+
| 213764555 |                           2000.00 |
| 220984332 |                             11.00 |
| 311549902 |                          40000.00 |
| 313782439 |                           1000.00 |
| 442346889 |                             14.75 |
| 443679012 |                             15.00 |
+-----------+-----------------------------------+
时间: 2024-10-12 02:30:39

COALESCE的相关文章

ORACLE中NVLl和COALESCE的区别

nvl(COMMISSION_PCT,0)如果第一个参数为null,则返回第二个参数如果第一个参数为非null,则返回第一个参数 COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)从左往右数,遇到第一个非null值,则返回该非null值.多层判断 第一点区别:从上面可以知道,nvl只适合于两个参数的,COALESCE适合于多个参数. 第二点区别:COALESCE里的所有参数类型必须保持一致,nvl可以不一致.

SQL 函数NULLIF、NULL、ISNULL、COALESCE

NULLIF函数 NULLIF(Expression1,Expression2):给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL:否则就返回第一个参数. 等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1. 例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1. 有一个实际的应用,例如防止除0操作的放生,可以使用a/NULLIF(

mysql coalesce函数

COALESCE函数从值列表中返回第一个非NULL的值,当遇到NULL值时将其替换为0. coalesce(str1,str2....); e.g.   需要在表中查出所有比'WARD'提成(COMM)低的员工,提成为NULL的员工也包括在内. (个人意见,如果数据库提成字段默认值不是为0值的话肯定是开发那个的错). select ename,comm from emp where coalesce(comm,0) < (select comm from emp whrer ename ="

oracle几个函数整理 DECODE() NVL NVL2 NULLIF Coalesce(转)

DECODE() decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的column, ·含义解释: decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的理解如下: if (条件==值1) th

DB2中coalesce函数的应用

在ETL项目中经常会碰到这样的一种情况: 目标表中的某列来源于不同的源数据表A,B,C.如果在A中没有有效的数据则从B中取,如果B中没有则从C中取,如果C中也没有则设置为空值. 遇到这样的情况可能,有时候第一个念头就是case when then else end这样的方式,这种方式也可以解决问题,但是写起来还是比较复杂,容易出错,特别是当别人看你写的SQL的时候会头疼. 那么有没有更好的办法呢? 那就是coalesce函数. COALESCE函数可以替代CASE语句,而且比CASE要方便得多,

SQL Server分页方式、ISNULL与COALESCE性能比较(八)

前言 上一节我们讲解了数据类型以及字符串中几个需要注意的地方,这节我们继续讲讲字符串行数同时也讲其他内容和穿插的内容,简短的内容,深入的讲解. 分页方式 在SQL 2005或者SQL 2008中我们是利用ROW_NUMBER开窗函数来进行分页的,关于开窗函数,我们在SQL进阶中会详细讲讲.如下: USE TSQL2012 GO DECLARE @StartRow INT DECLARE @EndRow INT SET @StartRow = 31 SET @EndRow = 40 SELECT

oracle nvl,nvl2,coalesce几个函数的区别

1.nvl(exp1,exp2) NVL lets you replace null (returned as a blank) with a string in the results of a query. If expr1 is null, then NVL returns expr2. If expr1 is not null, then NVL returnsexpr1. 该函数是处理表达式中的空值:假设表达式exp1是空值,则该函数返回表达式exp2的值, 假设表达式exp1没有是空

简单说下COALESCE这个日常使用的函数

COALESCE 作用是返回第一个非空的值. SELECT COALESCE(NULL,NULL,'A','CC') ---- A 原理的话其实也是相当于 case when A is not null then A when B is not null then B . . . else N end 对于简化代码来说确实不错~ --总结下面3点 --1.不能所有常量都使用NULL,只有报错的份 SELECT COALESCE(NULL,NULL) --2.针对情况1,用变量的话是可以的! DE

Spark RDD 默认分区数量 - repartitions和coalesce异同

RDD.getNumPartitions()方法可以获得一个RDD分区数量, 1.默认由文件读取的话,本地文件会进行shuffle,hdfs文件默认会按照dfs分片来设定. 2.计算生成后,默认会按照executor-number*executor-cores来分片,也就是spark默认按照总工作核数来对数据分片,而不是工作实例数. RDD.repartitions(n:Int)和RDD.coalesce(n:Int,shuffle : Boolean) 都是对RDD进行重新分区. 源码实现上:

MySQL中关于coalesce的用法

coalesce在sql中其实是一个很有用的函数:coalesce()主要作用是返回第一个非null值: 例如: coalesce(null, null, 2, 4) ==> 返回2, coalesce(null,null) ==> 返回null 当然,coalesce()函数的最主要作用判断一个值是不是null,如果是,则返回一个定值, 例如: coalesce(money,0)  ==> 解释: 返回数据库中字段为money的值,如果money为null,则返回0: 这个就相当于ca