背景 客户遇到一个现象order by 列是null的时候,最后一行总是显示相同的值.不要问我为什么对空值排序,意义何在?客户代码如此,客户不愿意改代码,作为dba大家都懂的.客户认为即使对null排序也能实现普通列的效果.要么定位为bug,要不给出合理解释. 分析 下面我们看一下测试过程,可以得出一个公式.select * from aaa order by name limit n offset f; 当表的总记录数 total>2*(n+f) 就得到:最后一行总是显示相同的值 [](jav…
为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两个无法回避的缺点: 打破了封装性,子类依赖于超类的实现细节,和超类耦合. 超类更新后可能会导致错误. 继承打破了封装性 关于这一点,下面是一个详细的例子(来源于Effective Java第16条) public class MyHashSet<E> extends HashSet<E>…
几种给Dataset增加列的方式 首先创建一个DF对象: scala> spark.version res0: String = .cloudera1 scala> val , , 2.0))).toDF("id", "rsrp", "rsrq") more field] scala> df.show +----+----+----+ | id|rsrp|rsrq| +----+----+----+ |key1| | 1.0|…
在SQL中order by null有什么用吗?这是我在一次面试时面试官问我的问题,当时我是懵的.他让我猜一下,我说不排序?没想到被我猜对了 不排序你就别用order by啊!为什么要用order by null? 我们看一下下面这条SQL分析 explain select * from sc group by sc.Sid 在extra中我们看到 using filesort 外部排序,这肯定是影响SQL性能的.尤其是在用到group by时,即使你不需要排序,MySQL会默认根据分组字段or…
针对页面传参到in的子集中去进行查询操作的话,就会有in(xxx,null),这样就会导致查询的结果中其实直接过滤掉了null,根本就查不出来null的值.之前对于null的操作都是进行不同数据库的null函数来进行选择nvl.isnull.ifnull等,直接将字段的null进行转换后再操作. 只知道要对数据库中的null进行转换的操作,但是不知所云,所以今天就大致了解下.针对oracle的null的基本操作: 一.null值的介绍 NULL 是数据库中特有的数据类型,当一条记录的某个列为 N…
  Preface       Null is a special constraint of columns.The columns in table will be added null constrain if you do not define the column with "not null" key words explicitly when creating the table.Many programmers like to define columns by def…
假如数据库有表emp: empno name   age 001      lucy      22 002      lily        null 003      lilei       null 004      lucy      null 005      pear      null 006      pear      null 当执行sql: SELECT empno FROM `emp` where age != 22; 返回的竟然一条都没有; 结论: null值是不参与比…
private void btn2_Click(object sender, RoutedEventArgs e)         {             using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test20140531;User ID=sa;Password=123"))             {                 conn.Open();      …
本文阅读时间大约6分钟. 其实写这篇文章,也是来自一个知识星球读者的提问,他在二面的过程中被问到了,由于他简历中写道有 MySQL 调优经验,但这个问题没有回答好,二面被刷了. 其实我们刚学习 C 语言的时候,就接触过 NULL,比如下面这句代码. int *p = NULL; 它实际上表示将指针指向一块不被使用的内存地址,一般会在宏中定义好. 那么我们常用的 Java 语言,同样也用到 null,表示一个空引用,如果你不小心引用了,那么就会抛出 NullPointerException,就像昨…
在讲null之前,我们先看一个例子 表数据如下: 3306>select * from t1; +------+-------+ | id | name | +------+-------+ | 1 | chen | | 2 | zhang | | 3 | NULL | +------+-------+ 3 rows in set (0.00 sec)   然后我们想查出所有名字不为'chen'的其它行记录,我们有可能这样写: 3306>select * from t1 where name!…