sql - 从 json 插入 sql server 表(2016)
问题描述
我有一些这样的json:
SET @json =N'[
{ "id" : 2,"name": "John", "surname": "Smith", "lastname":"", "age": 25 },
]'
我需要插入到表中,条件如下IF LASTNAME IS EMPTY IN JSON THEN INSERT SURNAME INTO LASTNAME ELSE INSERT LASTNAME INTO LASTNAME
insert into mytable (id,firstname,lastname,age)
select id,name,case statement,age from openjson
WITH (id int 'strict $.id',name nvarchar(100) '$.name',case statement, age int '$.age');
解决方案
嗨,我认为这个查询可以响应:
DECLARE @json varchar(MAX)
SET @json =N'[
{ "id" : 2,"name": "John", "surname": "Smith", "lastname":"", "age": 25 },
{ "id" : 2,"name": "John", "surname": "Smith", "lastname":"TT", "age": 25 },
{ "id" : 2,"name": "John", "surname": "Smith", "lastname":"TEST", "age": 25 }
]'
select id,name,case when lastname = '' then surname else lastname end as lastnameup, age from openjson(@json)
WITH (id int 'strict $.id',name nvarchar(100) '$.name', surname nvarchar(100) '$.surname', lastname nvarchar(100) '$.lastname', age int '$.age');
编辑姓氏的提议感谢@Shnugo
推荐阅读
- python - 仅当创建的用户位于 Django 中的特定组上时,如何使信号运行?
- sql - 如何在 sql server 中添加列名值由 case 表达式给出
- ios - 如何在 Unity 中删除 isAdvertisingTrackingEnabled
- php - 将会话存储到公共数据库中
- android - Gravity:End 没有以编程方式生效
- c# - Unity c# jsonUtility 函数无法正常工作
- php - Symfony 4 自定义验证器约束未加载
- python-3.x - 关于 jupyter 中数据类型更改的错误
- android - 在 AppCompatImageButton 或 android 中的 imageview 中设置图像颜色
- permissions - 在 Airflow 上创建自定义角色的问题(查看者 + 触发 dag + 运行 dag 权限)