CouchDB:在视图中代表 NVL()
Posted
技术标签:
【中文标题】CouchDB:在视图中代表 NVL()【英文标题】:CouchDB: representing NVL() in view 【发布时间】:2013-09-26 16:21:53 【问题描述】:我正在为下面的 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()
和MAX
函数添加到上面的_design 视图文档中。
任何信息或线索表示赞赏。感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:您可以编写自己的 NVL 函数,方法是检查字段是否存在,如果不存在则返回 0。
对于 max 功能,您必须在视图中添加一个 reduce 功能。如果你只是想得到最大值,"reduce": "_max"
就可以了,这是一个内置的 reduce 函数。
【讨论】:
以上是关于CouchDB:在视图中代表 NVL()的主要内容,如果未能解决你的问题,请参考以下文章
Couchdb、couch-connector 和多个数据库