转义嵌套json查询的Transact-SQL union all-on json结果
我对json结果的union操作有问题,因为出于某种原因,我的嵌套json查询结果的双引号被转义,这会在我的应用程序中导致解析错误。以下是一个例子:转义嵌套json查询的Transact-SQL union all-on json结果,sql,sql-server,tsql,json-query,Sql,Sql Server,Tsql,Json Query,我对json结果的union操作有问题,因为出于某种原因,我的嵌套json查询结果的双引号被转义,这会在我的应用程序中导致解析错误。以下是一个例子: SELECT DISTINCT s.*, JSON_QUERY((select * from SomeTable WHERE Id = 'some ID' FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) AS ExampleColumn from [SomeOtherTable] sot where sot.Id =
SELECT DISTINCT s.*,
JSON_QUERY((select * from SomeTable WHERE Id = 'some ID' FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) AS ExampleColumn from [SomeOtherTable] sot where sot.Id = 'some other ID'
UNION ALL
SELECT DISTINCT S1.*, JSON_QUERY((select * from SomeTable WHERE Id = 'some other other ID' FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) AS ExampleColumn from [SomeOtherTable] sot1 where sot1.Id = 'some other other other ID' FOR JSON PATH
结果是正确的,只有嵌套的JSON_查询结果转义了双引号。有人能帮我吗?您的查询将json转换为文本,这就是为什么第二个json将它们作为字符串进行处理并添加转义双引号的原因 你可以试试这个。我希望它能帮助你
SELECT STRING_AGG (JsonText,',') FROM (
SELECT ( SELECT DISTINCT sot.*, ExampleColumn.*
FROM
[SomeOtherTable] sot
OUTER APPLY(select * from SomeTable WHERE Id = 'some ID') AS ExampleColumn
WHERE
sot.Id = 'some other ID' FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER ) JsonText
UNION ALL
SELECT ( SELECT DISTINCT sot1.*, ExampleColumn.*
FROM
[SomeOtherTable] sot1
OUTER APPLY((select * from SomeTable WHERE Id = 'some other other ID')) AS ExampleColumn
WHERE sot1.Id = 'some other other other ID' FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER ) JsonText
)
你能展示一下整个查询吗?你能用一些样本数据重现这个问题吗?若你们这样做的话,你们会很容易得到答案。