SQL Server中的orderby json字段

时间:2015-10-09 19:38:12

标签: c# asp.net sql-server json

我有一个存储在sql表中的json字符串。我这样做的原因是输出保存的模型,但我不知道模型是什么样的。它本来就是一个插件。

它们按类型分开。例如,我将使用表单模型。

一个表单将有一个firstname, lastname, email, and comment。 另一种形式将有fullname, email, comment, and phonenumber

我不想强迫某人使用无法轻易更改的特定型号。

我的两个模型在两个单独的html表中完美显示。我只是这样说,所以你知道每个人都有相同的属性,具体取决于类型,两个模型永远不会在同一个html表中。

我只是希望能够通过json中的未知属性进行排序。有没有办法在SQL Server中的json字符串中对键值进行排序?

我会在进行查询后执行此操作,但是我遇到的问题是我可能会有数十万条记录。我不想做那么大的查询并在我的页面上吐出JSON,所以我已经实现了分页。我觉得必须有一个很好的方法来做到这一点。

如果重要的话,我正在使用asp.net。

2 个答案:

答案 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服务器处理它给出的格式,绝对不会该死的。