Denodo,MemSQL,Spark,VectorWise和XtremeData中的NULLS LAST标志

时间:2016-08-23 22:32:13

标签: apache-spark memsql vectorwise denodo

我正在为个人项目做一个伪ORM,我正在为那些20多种不同的SQL方言编译兼容性检查列表。

目前,我正在研究方言是否支持NULLS LAST标志,即在排序表时,将null作为最后一项(1, 2, 3, 4, null而不是null, 1, 2, 3, 4

我有DashDB / MySQL / MSSQL等语言的结果(是的 - 他们提供NULL LAST)但是,以下方言,我无法找到null-last-ability:

  1. Denodo

  2. MemSQL

  3. 火花

  4. VectorWise

  5. XtremeData在

  6. 一个简单的"是"或"不"但是,如果你还可以写下关于如何执行NULL LAST操作的查询,那么你的答案就足够了,那也很棒!

1 个答案:

答案 0 :(得分:2)

我检查了MemSQL,并且afaik不支持NULLS LAST语法。也就是说,您可以通过以下方式实现这一目标:

SELECT * FROM foo ORDER BY IFNULL(bar, MAGIC_VALUE) ASC

更改MAGIC_VALUE,以便根据列中的数据对last / first进行排序。如果你对perf命中没问题,你可以改变这个值,使得如果它不为null,则值总是以排序高的前缀开始,如果为null,则值的排序低于前缀。

同样的事情可以用来实现NULL FIRST。