作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很久以前就发现了这个,从那以后就一直在使用它;然而,今天看着它,我意识到我并不完全理解它为什么会起作用。有人可以帮我解释一下吗?
ORDER BY s.type!= 'Nails',
s.type!= 'Bolts',
s.type!= 'Washers',
s.type!= 'Screws',
s.type!= 'Staples',
s.type!= 'Nuts', ...
如果我按 s.type 排序,它会按字母顺序排序。如果我使用上面的示例,它使用与行位置相同的顺序。我不明白的是 != 的用法。如果我使用 = 它以相反的顺序出现。我无法理解这个概念。
在我看来,使用 = 代替上面的 != 会把 Nails 放在最前面,但它不会,它会把它放在最后。我想我的问题是:为什么我必须在这种情况下使用 !=,而不是 =?
最佳答案
@Scott Bailey建议好主意。但自 PostgreSQL 9.5 以来,它甚至可以更简单(您不必创建自定义函数)。只需使用 array_position
功能:
ORDER BY array_position(array['Nails','Bolts','Washers','Screws','Staples','Nuts'], s.type)
关于postgresql - 自定义 ORDER BY 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088532/
我是一名优秀的程序员,十分优秀!