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);
 }
}

上記の _design ビュー ドキュメントにNVL()and関数を追加する方法を教えてください。MAX情報や手がかりをいただければ幸いです。お時間をいただきありがとうございます。

4

1 に答える 1

1

フィールドの存在をチェックし、存在しない場合は 0 を返すことにより、独自の NVL 関数を作成できます。

最大の機能を得るには、reduce 関数をビューに追加する必要があります。最大値を取得したいだけの場合"reduce": "_max"は、reduce 関数が組み込まれています。

于 2013-09-26T16:57:50.633 に答える