Couchbase N1QL ORDER by true 和不存在的字段
Couchbase N1QL ORDER by true and field that doesn't exist
我正在尝试按有时存在有时不存在的字段进行排序。示例数据:
[
{ 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
然而,当我使用上面的查询时,它根本没有正确排序(基本上什么都不做)。
确实有秩序。请注意 LOWER on MISSING 是 MISSING 并放在第一位,
non-string 上的 LOWER 值为 NULL(因为 LOWER 只能在字符串上完成),它位于 MISSING 之后。在重复的值中,可以重复放置任何顺序,以避免提供更多的 ORDER BY 表达式。结帐 https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/orderby.html
您可以删除 LOWER,因为布尔字段不需要 lower。
SELECT a.*
FROM table a
WHERE AND a.DocType = "User"
ORDER BY a.RegisteredUser ASC;
我正在尝试按有时存在有时不存在的字段进行排序。示例数据:
[
{ 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
然而,当我使用上面的查询时,它根本没有正确排序(基本上什么都不做)。
确实有秩序。请注意 LOWER on MISSING 是 MISSING 并放在第一位, non-string 上的 LOWER 值为 NULL(因为 LOWER 只能在字符串上完成),它位于 MISSING 之后。在重复的值中,可以重复放置任何顺序,以避免提供更多的 ORDER BY 表达式。结帐 https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/orderby.html
您可以删除 LOWER,因为布尔字段不需要 lower。
SELECT a.*
FROM table a
WHERE AND a.DocType = "User"
ORDER BY a.RegisteredUser ASC;