json - 我想将查询存储为 JSON 对象。(错误:SELECT INTO 语句中不允许使用 FOR JSON 子句。)
问题描述
CREATE TABLE #T ( DateColumn DATE, SomeColA VARCHAR (20), Temp INT,
Attribute1 VARCHAR (10), Attribute2 VARCHAR (10) )
INSERT INTO #T VALUES ('20180101', 'A', 8, 'D', NULL)
INSERT INTO #T VALUES ('20180201', 'B', 10, NULL, 'A')
INSERT INTO #T VALUES ('20180301', 'B', 12, NULL, NULL)
INSERT INTO #T VALUES ('20180401', 'A', 14, 'D', 'C')
INSERT INTO #T VALUES ('20180501', 'A', 15, 'E', 'Y')
SELECT DateColumn,
SomeColA,
Temp,
Attribute1,
Attribute2
-- INTO #NewTable
FROM #T FOR JSON AUTO
现在我在几页上读到这是不可能的。然而,这些页面不包括的是它是如何工作的。
一定很简单,但我找不到。
非常感谢!
解决方案
JSON
SQL Server (starting with 2016)
或更高的 db 兼容级别到 130
例如,使用 CTE 将查询存储为 JSON 对象
;WITH x(a) as
(
SELECT DateColumn,
SomeColA,
Temp,
Attribute1,
Attribute2
FROM #T FOR JSON AUTO
)
SELECT a INTO #b FROM x
推荐阅读
- list - 不使用排序/删除功能对列表进行排序
- flutter - 在自定义小部件顶部添加飞溅效果
- kotlin - Kotlin 将自定义方法添加到流链接
- python - 为什么pygame混音器不能在运行时播放歌曲
- python-3.x - 从列表创建数据框时防止熊猫舍入整数
- ng-bootstrap - 从 ngb-timepicker 中删除初始文本
- laravel - 雄辩的试图与时间约会
- python - 使用 LayerControl 的叶图例可视化
- jestjs - 如果使用扩展运算符,覆盖率很低,但与 Objec.assign 配合使用效果很好
- c++ - 在堆上存储 3D 数组作为结构成员