我正在使用SQL并try 从JSON字段中提取数据,该JSON字段的"key"名称中带有方括号([]).方括号不表示数组,它们只是字符串/名称/标识符的一部分.JSON专栏的示例内容:

{
  "status": 1,
  "otherfieldname[1]": 2.5
}

在Snowflake SQL中,以下代码可以有效地提取这些值,但它似乎会混淆VS代码:

SELECT
    message['status']::int as status 
    , message['otherfieldname[1]']::float as field_1 
FROM
    table_with_message_JSON

下面是VS代码的外观: screenshot of VS Code UI not recognizing the string.它似乎认为缺少单引号',因为它将1]之后的所有内容都视为文本.这可能是我可以在VS代码中更改的设置吗?或者,有没有其他方法可以编写SQL来提取字段值?

为了try 解决这个问题,我try 了\次(不包括方括号),以及其他几种获取JSON数据的方法,但都没有效果.

推荐答案

由于您正在编写Snowflake SQL,所以Visual Studio代码支持的常规"SQL"语言不能很好地解释这一点,因为它不是为Snowflake SQL设计的.

安装Snowflake extension.当您 Select Snowflake SQL作为您的语言服务器时,您的SQL看起来会更合适:

snowflake SQL example

您可以通过按Ctrl+KM并 Select "Snowflake SQL"来更改语言服务器.

Sql相关问答推荐

基于模式或其他行集的数据复制

如何在SQL Server中列出从当前月份开始的过go 10年中的月份

分组多输出访问查询问题

最近3个月收到的邮箱总数

snowflake/SQL嵌套的JSON对象和数组

需要使用SQLite查询进行一些奇怪的时间转换

查找滑动窗口框架中的最大和最小列值

STContains、STIntersections和STWithin返回错误的地理结果

获取主表条目,其中最新的辅助条目是 6 个月前

计算不同模式的时间跨度

根据要过滤的列的值进行联接和分组

将一名成员金额分配给群组内的其他成员

在SQL中实现表格数据透视类型报表

如何从一张表中获取值在至少三行相同的记录

Clob 问题 - 将 clob 列拆分为多行

强制 SQL 始终通过 R 从视图中返回至少一行

雅典娜弄错了操作顺序

SQL查询以获取从特定可变日期看到的用户

在 sql 中合并系列以删除重复项

Select 随机行,使得列子组的组合是唯一的