sql - 将 Json 表中的数据插入到已经在 SQL 中创建的视图中
问题描述
我有一个问题,我必须从存储在只有一个字段的表中的 Json 中插入数据,只需直接插入到视图中,但据我所知,没有任何方法可以更新或将数据插入到视图中,请执行任何人都知道如何调整或设置视图以从表中插入数据(PS:我不能使用 insert into 或 select into)
我的第一个包含 Json 数据的表:
| JsonOutPut |
|-------------------------------------------------------------------------------|
|[{"FID":1,"Fname":"cake","Fcount":5,"FDate":"2020-02-13","Fregion":"UK"},...] |
我的观点应该是这样的:
| FID | Fname | Fcount| FDate | Fregion |
|-----|-------|-------|----------|---------|
| 1 | cake | 5 |2020-02-13| UK |
我不想创建新表!
解决方案
create table jtable(JsonOutPut nvarchar(max));
go
insert into jtable(JsonOutPut)
values('[{"FID":1,"Fname":"cake","Fcount":5,"FDate":"2020-02-13","Fregion":"UK"},{"FID":2,"Fname":"pie","Fcount":15,"FDate":"2020-02-15","Fregion":"UK"}]'),
('[{"FID":100,"Fname":"cake100","Fcount":1005,"FDate":"2020-02-13","Fregion":"UK100"},{"FID":1002,"Fname":"pie100","Fcount":10015,"FDate":"2020-02-15","Fregion":"UK100"}]');
go
create view jview
as
select oj.FID, oj.Fname, oj.Fcount, oj.FDate, oj.Fregion
from jtable
cross apply openjson(JsonOutPut)
with
(
FID int '$.FID',
Fname varchar(100) '$.Fname',
Fcount int '$.Fcount',
FDate date '$.FDate',
Fregion varchar(20) '$.Fregion'
) as oj
go
select *
from jview
go
drop view if exists jview
drop table if exists jtable
go
推荐阅读
- java - 将谷歌地图实例传递给另一个活动
- r - R堆叠百分比条形图,带有ggplot的两个因子变量的百分比
- twitter-bootstrap - 拉伸链接的悬停效果
- python - 如何使用 BeautifulSoup 访问标签的属性值
- python - 导入 keras 禁用多处理
- ios - “‘ViewController’与协议‘UITextFieldDelegate’的冗余一致性”
- csv - 如何打开和处理超重的 800PB csv 文件?
- android - 来自蓝牙 EEG 设备的不可读数据
- python - 为什么空倒计时给我空间
- react-native - 反应式原生初始结构(空白应用程序)