postgresql – 自定义ORDER BY说明

前端之家收集整理的这篇文章主要介绍了postgresql – 自定义ORDER BY说明前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以前我发现这一次,一直在使用它;然而,今天看,我意识到我不完全明白为什么它的作品。有人可以给我一些光吗?
ORDER BY  s.type!= 'Nails',s.type!= 'Bolts',s.type!= 'Washers',s.type!= 'Screws',s.type!= 'Staples',s.type!= 'Nuts',...

如果我通过s.type命令,它按字母顺序排列。如果我使用上面的示例,它将使用与行位置相同的顺序。我不明白的是使用!=。如果我使用=它以相反的顺序出现。我不能围绕着这个概念。

这对我来说,使用=代替上面的!=’将会使Nails首先处于位置,但是它不会将它放在最后。我想我的问题是这样的:为什么我必须使用!=,不是=在这种情况下?

我从来没有看过它,但似乎是有道理的。

起初它通过s.type!=’Nails’命令。对于类型列中包含Nails的每一行,这是false。之后,它被Bolts分类。对于包含Bolts作为类型的所有列,再次评估为false。等等。

一个小的测试显示,假在真实之前被命令。所以你有以下几点:首先你得到所有的行与Nails在顶部,因为根据ORDER BY评估为false和false首先。其余行按第二个ORDER BY标准排序。等等。

 type     | != Nails | != Bolts | != Washers
'Nails'   | false    | true     | true
'Bolts'   | true     | false    | true
'Washers' | true     | true     | false

猜你在找的Postgre SQL相关文章