Как я могу написать запрос SQL, чтобы изменить порядок и обрезать элементы в полезной нагрузке JSON? - PullRequest
0 голосов
/ 30 сентября 2019

Я новичок в SQL. Я пытаюсь сделать запрос к базе данных, чтобы получить взамен вывод JSON. Мне нужны выходные данные для отображения усеченных версий значений, а также для отображения ключей в алфавитном порядке.

В качестве примера, скажем, одно из полей в полезной нагрузке выглядит так: {color: Black w / Yellow Trim}

Как мне написать SQL-запрос так, чтобы он отображал только это:{color: Black}

Кроме того, как мне написать запрос для перечисления клавиш в алфавитном порядке?

Заранее большое спасибо.

Я еще ничего не пробовал;Я новичок в SQL.

1 Ответ

0 голосов
/ 02 октября 2019

Для этого в Mule я бы использовал SQL-запрос, чтобы получить необработанную информацию, а затем преобразовать ее, используя DataWeave:

<flow name="selectParameterizedQuery">
     <db:select config-ref="dbConfig">
        <db:sql>SELECT color FROM colortable</db:sql> <!-- query to get the color results -->
    </db:select>
    <ee:transform doc:name="Transform Message" >
        <ee:message >
            <ee:set-payload ><![CDATA[%dw 2.0
                %dw 2.0
                output application/json
                ---
                payload map {
                    color: $.color[0 to 4]  // get 5 first characters
                }    
     ]]></ee:set-payload>
        </ee:message>
    </ee:transform>
</flow>

Допустим, запрос возвращает это:

 [{"color": "Black w/ Yellow Trim"}, {"color": "Black w/ blue Trim"}, {"color": "Red"},{"color": "Red w/ blue Trim"}]

Тогда преобразование вернется:

[
  {
    "color": "Black"
  },
  {
    "color": "Black"
  },
  {
    "color": null
  },
  {
    "color": "Red w"
  }
]

Обратите внимание, что вам все еще нужно настроить соединитель базы данных и адаптировать запрос.

Возможно, вам придется поэкспериментироватьс разными критериями выбора цвета. Обратите внимание, что «Red» вернет ноль, потому что подстрока слишком короткая. Для этого вы можете использовать выражения DataWeave.

...