coalesce()函数

①用途:

将空值替换成其他值

返回第一个非空值

②表达式:

COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

③实例:

ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号。

ROW_NUMBER()

说明:返回结果集分区内行的序列号,每个分区的第一行从1开始。
语法:ROW_NUMBER () OVER  ([ <partition_by_clause> ] <order_by_clause>) 。
备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。
参数:<partition_by_clause> :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。
      <order_by_clause>:确定将 ROW_NUMBER 值分配给分区中的行的顺序。
返回类型:bigint 。

注意:mysql 目前使用的版本不支持该函数,提示该版本不支持,不知道后续的高版本支持不,pg 支持,所以下面实例 使用的是 pg

应用实例

/*以FoodPrice列排序并显示排序后的行号*/
SELECT ROW_NUMBER() OVER(ORDER BY FoodPrice DESC) AS RowId,* FROM dbo.Food

/*以FoodType分组,然后以FoodPrice排序并显示所在分组的相应行号*/
SELECT ROW_NUMBER() OVER(PARTITION BY FoodType ORDER BY FoodPrice DESC) AS RowId,* FROM dbo.Food

RANK()

/*以FoodType分组,然后以FoodPrice排序并显示所在分组的相应行号,如果排序字段字相等则显示相同的行号,
并跳过所在的真实行号*/
SELECT RANK() OVER(PARTITION BY FoodType ORDER BY FoodPrice) AS RowID,* FROM dbo.Food

DENSE_RANK()

/*以FoodType分组,然后以FoodPrice排序并显示所在分组的相应行号,如果排序字段字相等则显示相同的行号,
忽略相同行号,依次递增*/
SELECT DENSE_RANK() OVER(PARTITION BY FoodType ORDER BY FoodPrice) AS RowID,* FROM dbo.Food

如图实际使用

-- 按状态分组,然后按单价降序展示
select row_number() over(partition by t1.order_status order by t1.goods_price desc) as rank,t1.* from orderinfo t1

-- 按状态分组,然后按单价升序展示
select row_number() over(partition by t1.order_status order by t1.goods_price asc )as rank,t1.* from orderinfo t1

-- 按状态分组,然后取出该分组中价钱最的数据

select * from (
select row_number() over(partition by t1.order_status order by t1.goods_price desc ) as rank,t1.* from orderinfo t1) ta
where ta.rank=1;

SQL 函数 coalesce()、row_number()的用法的更多相关文章

  1. sql 函数 coalesce

    SQL函数 coalesce 功能: 返回参数中第一个非null的值. 语法: coalesce(参数1,参数2,参数3,...);返回第一个非null的值. 一般情况下会与Nullif()函数一起使 ...

  2. [sql]sql函数coalesce返回第一个非空的值

    下面来看几个比较有用的例子: 首先,从MSDN上看看这个函数的使用方法,coalesce函数(下面简称函数),返回一个参数中非空的值.如: SELECT  COALESCE(NULL, NULL, G ...

  3. SQL Server中row_number的用法

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也 ...

  4. SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介   排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张O ...

  5. SQL Server中row_number函数的简单用法

    一.SQL Server Row_number函数简介   ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是R ...

  6. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)(转载)

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介   排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张O ...

  7. 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)

    partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指 ...

  8. SQL Server数据库ROW_NUMBER()函数使用详解

    SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...

  9. SQL中的排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别. 在使用排名函数的时候需要注意以下三点: 1.排名函数必须有 OVER 子句. 2.排名函数必须有包含 ORDE ...

随机推荐

  1. ubuntu下zip文件操作

    转自 https://blog.csdn.net/hpu11/article/details/71524013 .zip $ zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹 ...

  2. Jmeter GIS调用-->参数化+正则表达式提取器+后置处理器+逻辑控制器

    一.参数化: 1.添加线程组 2.添加HTTP请求 3.CSV 数据文件设置 HTTP请求参数话 4.正则表达式提取器 5.逻辑控制器 可以or    and 等 6.后置处理器写入文件 FileWr ...

  3. Unity 特写镜头

    using UnityEngine; public class Camera_Feature : MonoBehaviour { public static Camera_Feature instan ...

  4. STM32F103引脚功能定义

  5. Angular4 websocket通讯

  6. vuex 入坑篇

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 这个状态自管理应用包含 ...

  7. 原 HTML5+规范:barcode(条码扫描)

    https://blog.csdn.net/qq_27626333/article/details/51815121 引用,版权归作者所有:

  8. js中,转义字符的表示

    HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号, ...

  9. Github怎么写README

    编辑README文件 大标题(一级标题):在文本下面加等于号,那么上方的文字就变成了大标题,等于号的个数无限制,但一定要大于0 大标题 ==== 中标题(二级标题):在文本下面加下划线,那么上方的文本 ...

  10. win10优化

    1. 关闭磁盘碎片整理.自动维护计划任务    磁盘C-属性–工具–对驱动器进行优化和碎片整理–优化–更改设置–取消选择按计划运行 2. 关闭Windows Defender    控制面板–Wind ...