【发布时间】:2016-02-05 03:44:48
【问题描述】:
我希望从 SQL Server 存储过程创建格式良好的 JSON。
我的问题如下:
像这样创建 JSON:
DECLARE @x varchar(20)
DECLARE @y varchar(20)
CREATE TABLE #temp
(
JSON varchar(max)
)
INSERT INTO #temp
VALUES (
'{' +
case when x IS NOT NULL BEGIN
'"key1":"' + x + '"' +
END
case when y IS NOT NULL BEGIN
'"key1":"' + y + '"' +
END
'}')
让“s”成为格式良好的json的最佳方法是什么?我想尽可能地减少逻辑(即每个 x*y 组合都没有分支)。
如果逗号放在 x if 条件的末尾,如果 y 为空,则失败。如果在将 y 插入 json 之前加上逗号,则如果 x 为 null,则失败。
有没有更好的方法在 SQL Server 中实现这一点?
【问题讨论】:
-
您能否发布一个有意义的 SQL 查询。
X值的来源。还有你使用的是哪个版本的SQL Server -
x 值来自另一个表,显然它们可以为空,但除了它们是有效的 varchar(20) 之外,这些值并不重要。 SQL Server 独立?这不是一个具体问题,而是一个最佳实践问题。从另一个表中动态拉取值时,是否有更好的方法使用 SQL 制作 JSON?
-
除非没有其他选择,否则我不会从 SQL 执行此操作。您应该在本机查询结果,然后在消费应用程序中将它们转换为 json。
-
SQL Server 2016原生支持JSON。 msdn.microsoft.com/en-us/library/dn921897.aspx
标签: sql sql-server json