首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当一列不是空字符串时,如何使用ORDER BY将行放在最后?

在SQL中,可以使用ORDER BY子句对查询结果进行排序。如果想要将不是空字符串的行放在最后,可以使用以下方法:

  1. 使用CASE语句结合ORDER BY子句:
  2. 使用CASE语句结合ORDER BY子句:
  3. 这个查询会首先按照CASE语句的结果进行排序,将空字符串的行排在前面(值为1),非空字符串的行排在后面(值为0),然后再按照column_name进行排序。
  4. 使用NULLIF函数结合ORDER BY子句:
  5. 使用NULLIF函数结合ORDER BY子句:
  6. NULLIF函数接受两个参数,如果这两个参数相等,则返回NULL,否则返回第一个参数的值。这里将column_name和空字符串进行比较,如果相等则返回NULL,否则返回column_name的值。这样就可以将空字符串的行排在前面,非空字符串的行排在后面,然后再按照column_name进行排序。

以上两种方法都可以实现将不是空字符串的行放在最后的效果。在实际应用中,可以根据具体的需求选择适合的方法。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云数据库SQL Server:https://cloud.tencent.com/product/cdb_sqlserver
  • 腾讯云数据库MongoDB:https://cloud.tencent.com/product/cdb_mongodb
  • 腾讯云数据库Redis:https://cloud.tencent.com/product/cdb_redis
  • 腾讯云数据库MariaDB:https://cloud.tencent.com/product/cdb_mariadb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【MySQL】MySQL基础知识详解(一)

日期时间,字符串类型的变量需要使用使用一对 ’ '单引号 去除重复 SELECT DISTINCT personage FROM employees 只显示出一种年龄,比如有两个相同的年龄,经过此词语后只会留下一个年龄...值:NULL 值不等同于0 或者 ‘ ’ 值参与运算结果也一定为NULL 那么字段中有NULL怎么计算呢?...解决方法就是加上一对`` SELECT *FROM `order` 查询常数 就是在SELECT查询结果中增加一列固定的常数列,这列的取值是我们规定的,不是从数据表中动态取出的、作为常量出现 SELECT...ORDER BY 中使用,不能在WHERE 中使用 比如 SELECT age*12 agee FROM person WHERE agee > 10; #会报错 那么·同时出现WHERE 和ORDER...注意:LIMIT子句一定要放在整个SELECT语句的最后面。 使用LIMIT句子好处 约束返回结果的数量可以减少数据表的网络传输量,也可以提升查询效率。

16520

《SQL必知必会》万字精华-第1到13章

主键 表中每一都应该都有一列或者几列来唯一标识自己。主键用来表示一个特定的。 主键:一列或者几列,其值能够标识表中每行。...2、单引号用来限定字符串。如果值和字符串类型的比较,需要使用限定符号 3、用来与数值列进行比较的值,则不用括号。...AND...联合使用 值检查 当我们创建表的时候,可以指定其中的列是否包含值。在一个列不包含值,称其包含值NULL。...) 字符串转换为大写 SOUNDEX是一个任何文本串转成描述其语音表示的字母数字模式的算法。...BY子句中列出的每一列都是检索列或者有效的表达式(但是不能是聚集函数) 如果在SELECT中使用表达式,则必须在GROUP BY子句中使用相同的表达式,而不是使用别名 除了聚集函数外,SELECT语句中的每列都必须在

7K00

一场pandas与SQL的巅峰大战(二)

在pandas中,我们可以列转换为字符串,截取其子串,添加为新的列。代码如下图左侧所示,我们使用了.str原字段视为字符串,从ts中截取了前10位,从orderid中截取了前8位。...-”为,在pandas中可以使用字符串的replace方法,hive中可以使用regexp_replace函数。...我定义了两个函数,第一个函数给原数据增加一列,标记我们的条件,第二个函数再增加一列满足条件,给出对应的orderid,然后要对整个dataframe应用这两个函数。...这样的结果中会有一个空行,这是因为用逗号分隔的时候,最后一个元素为。...我们的目标是原始以字符串形式存储的数组元素解析出来。 ? ? 先来看pandas中如何实现,这里我们需要用到literal_eval这个包,能够自动识别以字符串形式存储的数组。

2.3K20

MySQL 的索引查询以及优化技巧

表中某列字符串类型的数据长度差别较大适合使用varchar。 char的实际占用空间是固定的,表中字符串数据的长度相差无几或很短时适合使用chart类型。...先用第一列排序,然后是第二列,最后是第三列。 查询的使用应该尽量从左往右匹配,另外,如果左边列范围查找,右边列无法使用索引;还有就是不能隔列查询,否则后面的索引也无法使用到。...,创建的索引也很大,这时可以使用前缀索引,即:只针对字符串前几个字符做索引,这样可以缩短索引的大小,不过,显然,此类索引在执行order by和group by不起作用。...不使用的索引 不使用的索引徒然增加insert、update和delete的效率,应该及时删除 索引使用总结 索引的三星原则: 索引查询相关的记录按顺序放在一起则得一星 索引中的数据顺序和查询结果的排序一致则得一星...索引不是万能的,数据量巨大,维护索引本身也是耗费性能的,应该考虑分区分表存储。

1.2K00

10 分钟掌握 MySQL 的索引查询优化技巧

表中某列字符串类型的数据长度差别较大适合使用varchar。 char的实际占用空间是固定的,表中字符串数据的长度相差无几或很短时适合使用chart类型。...先用第一列排序,然后是第二列,最后是第三列。 查询的使用应该尽量从左往右匹配,另外,如果左边列范围查找,右边列无法使用索引;还有就是不能隔列查询,否则后面的索引也无法使用到。...,创建的索引也很大,这时可以使用前缀索引,即:只针对字符串前几个字符做索引,这样可以缩短索引的大小,不过,显然,此类索引在执行order by和group by不起作用。...不使用的索引 不使用的索引徒然增加insert、update和delete的效率,应该及时删除 索引使用总结 索引的三星原则: 索引查询相关的记录按顺序放在一起则得一星 索引中的数据顺序和查询结果的排序一致则得一星...索引不是万能的,数据量巨大,维护索引本身也是耗费性能的,应该考虑分区分表存储。

96720

看完这篇文章,99%的人都会使用Mysql Explain工具

如果你不定义为您的表的主键 ,MySQL取第一个唯一索引(unique)而且只含非列(NOT NULL)作为主键,InnoDB使用它作为聚集索引。...有 union ,UNION RESULT 的 table 列的值为,1和2表示参与 union 的 select id。...具体例子可参考,上面第二张图的table列 4.type列 这一列表示关联类型或访问类型,即MySQL决定如何查找表中的,查找数据记录的大概范围。...关于下图中,给出优化的sql,显示查询的是dual表,这个是mysql的自带的表,像我们上面的sql,mysql会直接数据解析到表中,查询返回出去,所以效率才会高 ?...8.ref列 这一列显示了在key列记录的索引中,表查找值所用到的列或常量 9.rows列 这一列是mysql估计要读取并检测的行数,注意这个不是结果集里的行数。

51310

10分钟掌握数据类型、索引、查询的MySQL优化技巧

表中某列字符串类型的数据长度差别较大适合使用varchar。 char的实际占用空间是固定的,表中字符串数据的长度相差无几或很短时适合使用chart类型。...先用第一列排序,然后是第二列,最后是第三列。 查询的使用应该尽量从左往右匹配,另外,如果左边列范围查找,右边列无法使用索引;还有就是不能隔列查询,否则后面的索引也无法使用到。...,创建的索引也很大,这时可以使用前缀索引,即:只针对字符串前几个字符做索引,这样可以缩短索引的大小,不过,显然,此类索引在执行order by和group by不起作用。...8、索引使用总结 索引的三星原则: 索引查询相关的记录按顺序放在一起则得一星 索引中的数据顺序和查询结果的排序一致则得一星 索引中包含了查询所需要的全部列则得一星 第一个条原则的意思是where条件中查询的顺序和索引是一致的...索引不是万能的,数据量巨大,维护索引本身也是耗费性能的,应该考虑分区分表存储。

79520

【Day21】LeetCode算法题

于是我就很自信地遍历字符串的每一个字符: 遇到左括号‘(’,就记录左括号数量left++; 遇到右括号‘)’,就记录左括号数量right++; 最后返回差值… 结果提交结果是: 我忽略了一类重要的情况...栈中没有元素,也就是栈长度为0,我们记录右括号')'的数量right++ ②栈中存在元素左括号(,我们栈顶元素弹出,代表两个括号对应,抵消了。...其中 answer[i] 是球放在顶部的第 i 列后从底部掉出来的那一列对应的下标; 如果球卡在盒子里,则返回 -1 ; 为了得到大小为 n 的数组 answer,我们就需要使用循环,从第一列的顶端开始遍历...,都会掉到下一当中,也就是行数:row++ ④当然,上面所有的情况都需要建立在: 移动后格子的值不变的情况下 以及 移动后位置不越界的情况下 出现 移动后格子的值改变 或者 移动后位置越界 的情况...,球在最后对应的列数col 记录完从每一列顶部放入球后最终的落点位置,我们直接返回记录数组answer 提交代码: class Solution { public int[] findBall

47440

数据查询语言QL

SELECT SNAME AS STUDENT_NAME FORM S AS STUDENT 集合的并、交、差操作: 两个子查询的结构完全一致,可以这两个子查询进行并、交、差等操作。...字符串匹配操作: 字符串匹配操作符是“LIKE", 在表达式中可以使用两个通配符: 百分号:与零个或多个字符组成的字符串匹配; 下划线:与单个字符匹配。...转义字符紧靠特殊字符并放在前面,表示该特殊字符将被当作普通字符。在LIKE中使用ESCAPE关键字来定义转义字符。...SQL中规定,涉及+,-,*,/的算术表达式中有一个值是,表达式的值也是值。涉及值的比较操作的结果认为是”false“。...在聚合函数中遇到,除了COUNT(*)外,都跳过值去处理非值。 集合成员资格的比较: 判断元组是否在查询的结果(即集合)中的操作,叫做”集合成员资格的比较“。

2.3K00

大佬都在用的数据库设计规范!你不点进来看看嘛?

和double在存储的时候,存在精度损失的问题,很可能在值比较,得到不正确的结果 如果存储的数据范围超过decimal的范围,建议数据拆分成整数和小数分开存储 如果存储的字符串长度几乎相等,使用char...不是频繁修改的字段 不是varchar超长字段,更不能是text字段 商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储类目名称,避免关联查询 单表行数超过500万或者单表容量超过...索引文件具有B-Tree的最左前缀匹配特性,如果左边的值未确定,无法使用此索引 如果有order by的场景,要注意利用索引的有序性 .order by最后的字段是组合索引的一部分,并且放在索引组合顺序的最后...offset,而是取offset+N,然后返回放弃前offset,返回N offset特别大的时候,效率就非常低下,要么控制返回的总页数,要么对超过特定阈值的页数进行SQL改写 先快速定位需要获取的...,注意 count(distinct col1, col2) 如果其中一列全为NULL, 那么即使另一列有不同的值,也返回0 一列的值全是NULL, count(NULL)的返回结果为0,但sum

46320

oracle基础|oracle排序用法|order by用法|where用法

column.... from .... order by ... 1) Order by子句在整个 select语句中的位置: 始终位于最后 2) order by后可以跟什么...: 列名,列的别名,表达式, 列出现在select关键字后的 顺序(列号); 3) order by后可以跟多列, 表示先按第一列排序, 如第一列有相同值再按...升序排序的时候,放在最后 降序排序的时候,放在最前面的 如果降序的时候,null在全前面,你不想要null在前面,可以加上null last eg:order by column null...by dept_id; 2》sql比较操作符 between and:在什么范围之内 in(list):在一个列表中 like:模糊查询,即值不是精确的值的时候使用 通配符,即可以代替任何内容的符号...is null:对null值操作特定义的操作符,不能使用= 3》逻辑操作符 条件有多个的时候使用 and:且逻辑 or:或逻辑 注意:and逻辑比or逻辑要高 not:非逻辑 4) 需求: 1.查找员工

3.5K10

《深入浅出SQL》问答录

为表插入数据,可以使用任何一种INSERT语句。 NULL是未定义的值。它不等于0,也不是值。值可以是NULL,但绝非等于NULL。 没有在INSERT语句中被赋值的列默认为NULL。...2、列一份关于那样事物的信息列表,这些信息都是使用的必要信息。 3、使用信息列表,把关于那样事物的综合信息拆分成小块信息,以便用于组织表。 原子不是很小吗?...花絮 谨慎使用DELETE和UPDATE,使用SELECT确认自己加入了非常精确的WHERE语句,可以只选出你真正想要删除/修改的使用UPDATE,你可以改变单一列或所有列的值。...第二范式(2NF) 符合1NF 没有部分函数依赖性 函数依赖性 某列的数据必须随着另一列的数据改变而改变,表示第一列函数依赖与第二列。...---- 左外联接 LEFT OUTER JOIN 会匹配左表中的每一及右表中符合条件的左表与右表具有一对多关系,左外联接特别有用。

2.9K50

SQL必知必会总结1-第1到7章

主键 表中每一都应该都有一列或者几列来唯一标识自己。主键用来表示一个特定的。 主键:一列或者几列,其值能够标识表中每行。...笔记:我们需要注意order by子句的位置,一定要保证它是select语句的最后一条子句。...如果它不是最后的子句,那么就会报错。 按多个列排序 在实际的需求中,我们经常会遇到根据多个列进行排序。比如根据员工的姓名排序,如果姓相同,再根据名字进行排序。...2、单引号用来限定字符串。如果值和字符串类型的比较,需要使用限定符号 3、用来与数值列进行比较的值,则不用括号。...AND...联合使用 值检查 当我们创建表的时候,可以指定其中的列是否包含值。在一个列不包含值,称其包含值NULL。

2.5K31

MySQL数据库规约.

5、小数类型为 decimal,禁止使用 float 和 double(存在精度损失的问题) 6、如果存储的字符串长度几乎相等,使用 char 定长字符串类型。...冗余字段应遵循: 1) 不是频繁修改的字段。 2) 不是 varchar 超长字段,更不能是 text 字段。...说明: MySQL 并不是跳过 offset ,而是取 offset+N ,然后返回放弃前 offset ,返回N ,那 offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行...order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort 的情况,影响查询性能。 正例: where a=? and b=?...3、一列的值全是 NULL , count(col)的返回结果为 0,但 sum(col)的返回结果为NULL,因此使用 sum()需注意 NPE 问题。

1.3K50

mysql小结(1) MYSQL索引特性小结

字符串和数字都能满足代理主键【该主键与业务无关只是添加一列主键保证记录唯一性】需求,应当优先选择数字做主键,但是如果逻辑主键【业务中有作为主键的列,也可选为主键,即为逻辑主键】是字符串类型,那也应该选择其作为主键...,因为字符串相比数字性能差别不是很大。...,那么就可以考虑rank列放在联合索引的最后一列。.../O,提高速度,所以分页没有特别指定的列,指定主键排序即可,另外不需要在联合索引最后一列添加主键,因为它本身包含主键 【非聚簇索引不存储完整记录,通过访问主键索引找到完整记录 】。...2.对于较长字符串例如200以上,可以考虑单独增加索引列,对其整体hash或者去其中一部分hash后存入其他一列,这 样字符串查找变成数字查找,同时索引长度大大减小,可有效提高索引速度,降低索引大小。

1.1K30

MySQL学习笔记(长期更新)

,原因是MySQL采用二进制存储数据,如果尾数不是0或5,就需要使用四舍五入的方式来表达,定点数类型:DECIMAL(十进制数的整数部分和小数部分拆开,分别转换成十六进制数存储)。...操作多表,未防止数据不一致的问题,保持操作的原子性,需要事务回滚rollback。 如何做好事务的隔离性? 会员张三是储值会员,他的会员卡⾥有100元。...子查询:返回的结果是一个列的集合,一N列,(N>=1)。子查询常用于父查询的FROM字句和WHERE字句中。 列子查询:返回的 结果是一个的集合,N一列,(N>=1)。...标量子查询:返回的结果集是一个标量集合,一一列。...: 一个子查询必须放在圆括号内 子查询放在比较条件的右边以增加可读性 子查询不包含ORDER BY字句,对一个SELECT语句只能有一个ORDER BY字句,如果使用的话,只能放在主SELECT语句的最后

94810

《SQL必知必会》万字浓缩精华

它必须放在列的前面。 不能部分使用DISTINCT关键字。...2、单引号用来限定字符串。如果值和字符串类型的比较,需要使用限定符号 3、用来与数值列进行比较的值,则不用括号。...AND...联合使用 值检查 当我们创建表的时候,可以指定其中的列是否包含值。在一个列不包含值,称其包含值NULL。...是否必须使用 SELECT 要返回的列或者表达式 是 FROM 从中检索数据的表 仅在从表选择数据使用 WHERE 级过滤 否 GROUP BY 分组说明 仅在按照组计算聚集使用 HAVING 组级过滤...注意NULL和空字符串的区别: NULL值没有值,不是字符串字符串值一个有效的值,它不是无值 NULL值使用关键字NULL而不是字符串指定 指定默认值 SQL中创建表的时候可以指定通过关键字DEFAULT

7.4K31
领券