Couchbase N1QL ORDER按true和不存在的字段

时间:2019-07-23 12:03:56

标签: couchbase n1ql

我正在尝试按有时出现但有时不出现的字段排序。示例数据:

[
  { 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

但是,当我使用上面的查询时,它根本无法正确排序(基本上什么也不做)。

1 个答案:

答案 0 :(得分:1)

它可以订购。请注意,“ 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;