2013-09-26 4 views
1
나는 아래의 SQL 명령에 대한 CouchDB를 _design 문서를 쓰고 있어요

에 NVL()를 나타내는 :CouchDB를이 :보기

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()MAX 기능을 어떻게 추가 할 수 있습니다하십시오. 모든 infortiom 또는 단서가 인정됩니다. 시간 내 주셔서 감사합니다.

답변

1

필드의 존재 여부를 확인하고 존재하지 않는 경우 0을 반환하여 고유 한 NVL 기능을 작성할 수 있습니다.

최대 기능의 경우보기에 축소 기능을 추가해야합니다. 최대 값을 얻고 싶다면 "reduce": "_max"을 사용하면된다. 이것은 reduce 함수에 내장되어있다.