MYSQL-利用if函数把NULL或者空串儿排在后面

问题场景

表名:tb_a
表字段:id,gene_id,chr [都是varchar]
值:这里写图片描述
要求按照chr数值大小升序并且没有值(NULL或者空串)的放在后面。

前言

在MySQL里按照chr字段升序排列的话(默认升序),NULL或者空串儿会被放在前面
这里写图片描述

降序则相反
这里写图片描述
但是降序满足不了chr按照数值大小升序排序(因为是chr被定义为varchar类型)

解决方式

a 用if函数判断NULL或者空串为一个足够大的数值型varchar类型的值,例如‘1000000000000’,读者可以根据情况改变这个假定值。这样的话chr字段每一条记录都有了值。
b 剩下的就是把数值型的varchar字段按照数值大小升序排列,思路可以参考MYSQL-对varchar类型字段(都是数字)按照整数大小倒序排列

SQL

这里写图片描述

在编程中,字符串操作是一个常见的需求,其中一个常见的操作是在指定位置插入另一个字符串。以下是一些常见编程语言中实现这一功能的方法: ### Python 在Python中,字符串是不可变的,因此我们需要将字符串转换为列表进行操作,然后将其转换回字符串。 ```python def insert_string(main_string, insert_string, position): return main_string[:position] + insert_string + main_string[position:] # 示例 main_string = "HelloWorld" insert_string = " " position = 5 result = insert_string(main_string, insert_string, position) print(result) # 输出: Hello World ``` ### Java 在Java中,字符串也是不可变的,因此我们需要使用`StringBuilder`进行操作。 ```java public class InsertString { public static String insertString(String mainString, String insertString, int position) { if (position > mainString.length()) { position = mainString.length(); } StringBuilder sb = new StringBuilder(mainString); sb.insert(position, insertString); return sb.toString(); } public static void main(String[] args) { String mainString = "HelloWorld"; String insertString = " "; int position = 5; String result = insertString(mainString, insertString, position); System.out.println(result); // 输出: Hello World } } ``` ### JavaScript 在JavaScript中,字符串可以通过`substring`方法进行操作。 ```javascript function insertString(mainString, insertString, position) { if (position > mainString.length) { position = mainString.length; } return mainString.substring(0, position) + insertString + mainString.substring(position); } // 示例 let mainString = "HelloWorld"; let insertString = " "; let position = 5; let result = insertString(mainString, insertString, position); console.log(result); // 输出: Hello World ``` 通过上述方法,你可以在不同编程语言中实现字符串的插入操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值