couchbase - Couchbase N1QL ORDER by true 和不存在的字段
问题描述
我正在尝试按有时存在而有时不存在的字段进行排序。示例数据:
[
{ Name: Jeff, RegisteredUser: true },
{ Name: Jane },
{ Name: Jill, RegisteredUser: true },
]
我的查询是这样的:
SELECT a.*
FROM table a
WHERE AND a.DocType = "User"
ORDER BY Lower(a.RegisteredUser) ASC
但是,当我使用上面的查询时,它根本没有正确排序(基本上什么都不做)。
解决方案
它确实订购。请注意 MISSING 上的 LOWER 是 MISSING 并放在最前面,非字符串值上的 LOWER 是 NULL(因为 LOWER 只能在字符串上完成)放在 MISSING 之后。重复值可以放置在重复值中的任何顺序,以避免提供更多 ORDER BY 表达式。结帐https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/orderby.html
您可以删除 LOWER,因为布尔字段不需要更低。
SELECT a.*
FROM table a
WHERE AND a.DocType = "User"
ORDER BY a.RegisteredUser ASC;
推荐阅读
- c# - 如何使用 TakeUntil 提前终止可观察链?
- ios - 导航栏项目未左对齐
- javascript - 更改数据集时不显示Chartjs自定义颜色
- python - BeautifulSoup4 使用带有标签对象的条件语句
- php - 作曲家 - “但这些被你的约束拒绝了。”
- javascript - 在 vue 中通过 fetch() 使用 API 调用
- java - CQEngine 是否支持事务更新?
- c# - C#初始化静态类的静态对象成员
- javascript - 如何在“v-text-field”组件的输入中定义文本的颜色?
- python - 简单的日转换器?获取数字中的周数和天数python