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

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...