1

我正在为下面的 SQL 命令编写 Couchdb _design 文档:

SELECT NVL(MAX(NVL(VERSION,0)),0)+1 FROM pricelistdocs WHERE 
PRICE_LIST_ID = ?  AND DELETION_FLAG = 0;

我在运行和返回值时想出了下面的 _design 视图函数,但我怀疑上述 SQL 命令是否正确并满足预期。

function(doc){
 if(doc.PRICE_LIST_ID == "110011"  && doc.DELETION_FLAG == "0" ){
   emit(doc._id, doc.VERSION);
 }
}

请问如何将NVL()andMAX函数添加到上面的 _design 视图文档中。任何信息或线索表示赞赏。感谢您的时间。

4

1 回答 1

1

您可以编写自己的 NVL 函数,方法是检查字段是否存在,如果不存在则返回 0。

对于 max 功能,您必须在视图中添加一个 reduce 功能。如果你只是想获得最大值,"reduce": "_max"就可以了,这是一个内置的 reduce 函数。

于 2013-09-26T16:57:50.633 回答