sql排序

[读书笔记] SQL必知必会

爷,独闯天下 提交于 2019-12-12 07:26:05
SQL必知必会 文章目录 SQL必知必会 检索相关注意点 检索去重数据关键字——DISTINCT 检索从第N行开始检索前M行数据 三种注释方式 排序相关注意点 排序方向 过滤数据 WHERE子句操作符 组合WHERE子句 AND、OR逻辑操作符 IN操作符 NOT操作符 用通配符进行过滤 百分号通配符(%) 下划线(_)通配符 方括号([ ])通配符 计算字段 拼接字段 算术运算 使用函数 文本处理函数 数值处理函数 聚集函数 聚集不同值 组合聚集函数 数据分组 过滤分组 分组和排序 子查询 作为计算阻断使用字符串 联结 使用表别名 不同类型的联结 使用带聚集函数的联结 组合查询 UNION关键字 数据插入 事物处理 游标 索引 检索相关注意点 检索去重数据关键字——DISTINCT DISTINCT关键字指示数据库只返回不同值,若使用DISTINCT关键字,必须放在列名前面。DISTINCT关键字作用于所有列。 SELECT DISTINCT * FROM TABLE ; 检索从第N行开始检索前M行数据 SQL SERVER: SELECT TOP 5 column FROM table ; ORACLE: SELECT cloumn FROM table WHERE ROWNUM <= 5 ; MySQL,MariaDB,PostgreSQL或者SQLite: SELECT

SQL Server 对时间两次排序

送分小仙女□ 提交于 2019-12-11 11:46:05
可能标题说的有点模糊,不知道该如何表达,下面用数据展示想要的效果: 表数据: SELECT * FROM SortTest 需求是:将最近当前日期的未来时间放到最前面,过去的日期放到后面,效果如下:(数据倒置) 看这个需求简单想法就是用union联合查询,在这里问题就来了,union不允许order by 排序。 然后想到嵌套联合查询,依旧不可以,在子查询中, 如果不存在TOP语句则ORDER BY子句无效: 加上TOP语句top 100 percent ,查询全部,这时数据乱序了: 然后找了下原因,使用100%排序就会失效,看这篇文章: 点我哦 那就查top 99.999999 percent 就成功了,但是要考虑数据是否会有遗漏。 select * from ( SELECT top 99.999999 percent * FROM SortTest where CreatedTime < GETDATE ( ) order by CreatedTime asc ) b Union ALL select * from ( SELECT top 99.999999 percent * FROM SortTest where CreatedTime >= GETDATE ( ) order by CreatedTime desc ) a 后面在想能不能不用联合查询

Oracle 查询(SELECT)语句(一)

◇◆丶佛笑我妖孽 提交于 2019-12-08 15:40:46
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

让人想犯罪 __ 提交于 2019-12-08 15:39:52
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

安稳与你 提交于 2019-12-08 15:39:43
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

安稳与你 提交于 2019-12-08 15:38:21
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

孤人 提交于 2019-12-08 15:37:37
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

☆樱花仙子☆ 提交于 2019-12-08 15:34:28
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

Oracle 查询(SELECT)语句(一)

时光怂恿深爱的人放手 提交于 2019-12-08 15:33:42
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

3.《SQLSERVER2012之T-SQL教程》T-SQL单表查询(三)

有些话、适合烂在心里 提交于 2019-12-07 02:28:44
表结构与数据: https://github.com/XuePeng87/TSQLV4 使用字符数据 设计字符数据的查询操作,包括数据类型、排序规则、运算符和函数,以及模式匹配。 数据类型 SQL Server支持两种字符数据类型,即常规和Unicode。常规数据类型包括CHAR和VARCHAR,Unicode数据类型包括NCHAR和NVARCHAR。常规字符的每个字符使用1个字节存储,而Unicode数据的每个字符要求2个字节,并且需要一个代理项对时,要求4个字节。如果为列选择了常规字符类型,会被限制除英语之外仅能使用一种语言。列支持的语言取决于列的有效规则。使用Unicode数据类型可以支持多种语言,所以如果你需要存储多种语言的字符数据,请确保使用Unicode字符类型,而不是常规字符类型。 名称中没有VAR元素的任何数据类型(CHAR、NCHAR)具有固定长度,即SQL Server按照列定义的大小保留行空间,而不是按照字符串中的实际字符数保留空间。 名称中含有VAR元素的数据类型(VARCHAR、NVARCHAR)具有可变长度,即SQL Server根据存储需要,在行中使用尽可能多的存储空间存储字符串中的字符,外加两个额外的字节偏移数据。 可变长度数据类型的数据更新效率低于固定长度数据类型。 还可以使用MAX来定义可变长度数据类型,而不是使用最大字符数