如何编写 SQL 查询来更改顺序并截断 JSON 负载中的元素?

How can I write a SQL query to change the order and truncate the elements in a JSON payload?

我是 SQL 的新手。我正在尝试查询数据库,以便可以在 return 中获得 JSON 输出。我需要输出显示值的截断版本,并按字母顺序显示键。

举个例子,假设负载中的字段之一是: {颜色:黑色配黄色 Trim}

如何编写 SQL 查询,使其仅显示以下内容: {颜色:黑色}

此外,如何编写查询以按字母顺序列出键?

非常感谢。

我还没有尝试过任何东西;我是 SQL.

的新手

为了在 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>

假设查询 return 是这样的:

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

那么转换会 return:

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

请注意,您仍然需要 configure the database connector 并调整查询。

您可能需要尝试不同的颜色选择标准。请注意,"Red" 将 return 为空,因为子字符串太短。您可以为此使用 DataWeave 表达式。