我有一个存储在sql表中的json字符串。我这样做的原因是输出保存的模型,但我不知道模型是什么样的。它本来就是一个插件。
它们按类型分开。例如,我将使用表单模型。
一个表单将有一个firstname, lastname, email, and comment
。
另一种形式将有fullname, email, comment, and phonenumber
。
我不想强迫某人使用无法轻易更改的特定型号。
我的两个模型在两个单独的html表中完美显示。我只是这样说,所以你知道每个人都有相同的属性,具体取决于类型,两个模型永远不会在同一个html表中。
我只是希望能够通过json中的未知属性进行排序。有没有办法在SQL Server中的json字符串中对键值进行排序?
我会在进行查询后执行此操作,但是我遇到的问题是我可能会有数十万条记录。我不想做那么大的查询并在我的页面上吐出JSON,所以我已经实现了分页。我觉得必须有一个很好的方法来做到这一点。
如果重要的话,我正在使用asp.net。
答案 0 :(得分:2)
在SQL Server 2016中,您可以在常规查询中使用JSON字段,例如:
SELECT * FROM mytab
WHERE JSON_VALUE(json_col, '$.lastname') LIKE '%Connor%'
ORDER BY JSON_VALUE(json_col, '$.firstname')
您甚至可以在属性上创建索引。有关更多示例,请参阅MSDN。此功能也将在Azure SQL数据库中提供。 在旧版本中,您将需要使用某种解析JSON的CLR程序集。
答案 1 :(得分:1)
如果您希望SQL完成这项工作,请使用SQL entites(它非常真实地编写SQL中的灵活结构)。不要求SQL服务器处理它给出的格式,绝对不会该死的。