sql - 如何修复 SQL Server Json 文本格式不正确。在位置 151 发现意外字符
问题描述
我正在处理一个包含 JSON 格式列的表,我想从该列中提取坐标值。
所以我运行以下代码:
Select *,JSON_VALUE(field,'$."Coordinate-X"[0]') As coordinate INTO TABLE_1 FROM table
WHERE JSON_VALUE(field,'$."Coordinate-X"[0]') IS NOT NULL
运行 5 分钟后出现以下错误
消息 13609,级别 16,状态 1,第 27 行 Json 文本格式不正确。在位置 151 处发现了意外字符 '"'。
当我尝试检查前 200 * 以下代码的某些行时,将返回结果而没有任何错误
Select TOP 200 *,JSON_QUERY(field,'$."Coordinate-X"[0]') As coordinate FROM table
WHERE JSON_VALUE(field,'$."Coordinate-X"[0]') IS NOT NULL
我想我有一行导致错误,但我不知道如何识别它或排除该行并返回结果。
解决方案
我设法用这个 where 语句解决了这个问题,以防有人遇到同样的问题,我希望它有所帮助!
Select *,JSON_QUERY(field,'$."Coordinate-X"[0]') As coordinate FROM table
WHERE field like '%Coordinate-X%'
and ISJSON(field)=1
推荐阅读
- excel - VBA 获取数据透视表
- c# - 为集成测试播种 WebApplicationFactory 不保存并给出 404
- python-3.x - 如何将这种类型的“字典”转换为数据框?
- java - selenium 根据索引位置获取 li 元素并单击复选框
- html - 引导显示无法在手机上进行生产
- java - Java Cucumber 自定义对象类型参数
- javascript - 通过正则表达式 WordPress 修改菜单项的第一个字母不起作用
- android - 外部图像未在 Android 中显示
- java - Java string.split 与 C# Regex.split - 限制为一定数量的字段
- python - Dask 数据框的值