2017-01-30 3 views
0
IF (skip = 0) THEN 
    SELECT COUNT(*) as totalcount 
    FROM table1 c 
    INNER JOIN table2 n ON n.chapter = c.id 
    WHERE c.revision = revisionId 
     AND n.data IS NOT NULL 
     AND n.type = 'text' 
     AND data ILIKE query INTO totalcount; 
    END IF; 

    response.totalcount := totalcount; 

Как вернуть JSON, как здесь:В plpsql, я пытаюсь вернуть ответ в формате JSON

{ totalcount: 5, skip: 52, result: [{data: "book1", type: chemistry}, {data: "book2", type: physics}]} 
+0

В чем вопрос? как вернуться из функции? Как назначить значение? как конвертировать в json? –

+0

укажите версию postgres. Инструментарий для json сильно отличается от 9.2 до 9.6 –

+0

Я пытаюсь вернуть «{totalcount: 5, skip: 52, result: [{data:" book1 ", type: chemistry}, {data:" book2 ", type : physics}]} "этот ответ от функции. Я хочу добиться чего-то вроде этого «response.totalcount: = totalcount» в plpsql, я не понимаю, как я его достигаю. Postgress version 9.5.3.0 – user6618680

ответ

0

Попробуйте обернуть его во внешнем запросе и использовать to_json:

SELECT to_json(wrap) 
FROM (SELECT ...) wrap;