c# - SQL Server 中的 orderby json 字段

标签 c# asp.net sql-server json

我有一个 json 字符串存储在一个 sql 表中。我这样做的原因是为了输出保存的模型,虽然我不知道模型是什么样子的。它应该是一个插件。

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

一个表单将包含名字、姓氏、电子邮件和评论。 另一个表单将有一个全名、电子邮件、评论和电话号码

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

我的两个模型完美地显示在两个单独的 html 表格中。我这么说只是为了让您知道每个模型都会根据类型具有相同的属性,并且这两个模型永远不会在同一个 html 表中。

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

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

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

最佳答案

在 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 程序集。

关于c# - SQL Server 中的 orderby json 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33045913/

相关文章:

c# - 如何在组合框中设置默认空值

sql - 用替代方案替换 SQL Cursor 以提高性能

c# - 如何防止 ASP.net MVC 应用程序通过域身份验证?

c# - 在不可变的构造函数方法中验证构造函数参数是坏主意还是好主意?

c# - 在特定日期执行 .Net 应用程序的方法

javascript - 来自其他站点的链接应打开该站点的第一个链接

c# - .NET 中的轻量级 HTTP 服务器库

c# - 从同一解决方案 C# 中的另一个项目引用 Web.Config 文件

sql-server - 删除非聚集索引时会发生什么?

sql-server - 从 SQL Server XML 列中提取值