用sql 取出以下josn,按行区分:["乐颐食品(深圳)有限公司","云南绿之恋农业科技有限公司","广州绿之恋农业科技有限公司","深圳市正禾蔬菜有限公司","福州优野生态农业有限公司(佳素)","福州耕韵生态农业开发有限公司","遂宁市旭塘农业有限公司"]
时间: 2023-07-21 22:06:03 浏览: 39
你可以使用以下 SQL 查询语句来提取给定的 JSON 数据,并按行进行区分:
```sql
SELECT json_array_elements('["乐颐食品(深圳)有限公司","云南绿之恋农业科技有限公司","广州绿之恋农业科技有限公司","深圳市正禾蔬菜有限公司","福州优野生态农业有限公司(佳素)","福州耕韵生态农业开发有限公司","遂宁市旭塘农业有限公司"]') AS company;
```
这将返回一个包含每个元素的行集,每行包含一个公司名称。
相关问题
sql 存放josn
您好!对于在 SQL 数据库中存储 JSON 数据,您可以使用以下两种方法:
1. JSON 字段:某些数据库(如 MySQL 5.7+,PostgreSQL)允许您在表中创建 JSON 类型的列。您可以将 JSON 数据直接存储在该列中,并使用内置的 JSON 函数进行查询和操作。
在 MySQL 中创建 JSON 列的示例:
```sql
CREATE TABLE your_table (
id INT PRIMARY KEY,
data JSON
);
```
在 PostgreSQL 中创建 JSON 列的示例:
```sql
CREATE TABLE your_table (
id SERIAL PRIMARY KEY,
data JSONB
);
```
2. 文本字段:如果您的数据库不支持 JSON 类型的列,您可以使用文本字段存储 JSON 字符串。在此情况下,您需要在应用程序中处理 JSON 数据的解析和序列化。
在 SQL 中创建文本列的示例:
```sql
CREATE TABLE your_table (
id INT PRIMARY KEY,
data TEXT
);
```
请注意,使用 JSON 字段或文本字段存储 JSON 数据有一些限制和注意事项。例如,您需要确保输入的 JSON 数据是有效的,并且需要小心处理查询和更新操作以避免潜在的安全风险。
希望这可以帮助到您!如果您还有其他问题,请随时提问。
用sql解析一下以下josn: [{"supply_id":"c05debb4-55d5-4c46-85e9-b0ae4b40658d","is_enabled":true,"supply_code":3251,"supply_name":"乐颐食品(深圳)有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"c7cb2c72-d608-46dc-9650-b31d922fc515","is_enabled":false,"supply_code":3690,"supply_name":"云南绿之恋农业科技有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"7bcc9770-e28b-45af-96e1-dbd15c337658","is_enabled":true,"supply_code":4410,"supply_name":"广州绿之恋农业科技有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"8625f2f8-f661-490a-9e55-4aa1cae5a8a6","is_enabled":true,"supply_code":1504,"supply_name":"深圳市正禾蔬菜有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"49481833-e099-4eaf-9c9b-ddf4c63fbe63","is_enabled":true,"supply_code":1396,"supply_name":"福州优野生态农业有限公司(佳素)","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"0d55599b-c6a6-4896-99e5-09f9379b5c8b","is_enabled":false,"supply_code":1205,"supply_name":"福州耕韵生态农业开发有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"fa417a5a-d275-44bf-895b-d03aae5b932e","is_enabled":true,"supply_code":4171,"supply_name":"遂宁市旭塘农业有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02}]
要使用 SQL 解析该 JSON 数据,您可以使用 JSON 函数和操作符来提取所需的字段。以下是一个示例 SQL 查询,可以解析给定的 JSON 并选择供应商名称、供应商代码和成本单位差异:
```sql
SELECT
json_extract_scalar(json_data, '$.supply_name') AS supply_name,
json_extract_scalar(json_data, '$.supply_code') AS supply_code,
json_extract_scalar(json_data, '$.diff_cost_unit') AS diff_cost_unit
FROM
your_table,
lateral flatten(input => parse_json(your_json_column)) -- 将 JSON 列解析为行
WHERE
your_condition; -- 如果有其他条件,请在此处添加
```
请替换 `your_table` 和 `your_json_column` 为您的表名和包含 JSON 数据的列名。根据您的需求,您可以调整选择的字段和添加其他条件。
注意,在某些 SQL 数据库中,JSON 函数和操作符的语法和函数名称可能会有所不同。请根据您使用的数据库类型和版本进行调整。