SQL Server SELECT 转 JSON 函数

2023-11-30

我想输出一个结果SELECT语句作为 JSON 对象。

我希望这是一个Function而不是一个存储过程!

例如下表用户

id    name        active
1     Bob Jones   1
2     John Smith  0

会像这样返回:

[{"id":1,"name":"Bob Jones","active":1},{"id":2,"name":"John Smith","active":0}]

提前致谢。


从 SQL Server 2016 开始,您可以使用for json:

declare @t table(id int, name nvarchar(max), active bit)
insert @t values (1, 'Bob Jones', 1), (2, 'John Smith', 0)

select id, name, active
from @t
for json auto

对于旧版本的 SQL Server,您可以使用for xml path, e.g.:

select '[' + STUFF((
        select 
            ',{"id":' + cast(id as varchar(max))
            + ',"name":"' + name + '"'
            + ',"active":' + cast(active as varchar(max))
            +'}'

        from @t t1
        for xml path(''), type
    ).value('.', 'varchar(max)'), 1, 1, '') + ']'

Output:

[{"id":1,"name":"Bob Jones","active":1},{"id":2,"name":"John Smith","active":0}]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server SELECT 转 JSON 函数 的相关文章

随机推荐

  • 停止龙卷风应用程序

    让我们以 Tornado 主页中的 hello world 应用程序为例 import tornado ioloop import tornado web class MainHandler tornado web RequestHandl
  • 用户窗体在“End Sub”后关闭,而无需调用“Unload Me”

    我有一个用户表单 baseUF 它有多个页面和按钮 它们都执行不同的操作 我让这个 baseUF 是无模式的 因为我希望用户能够在不关闭用户窗体并丢失他们输入的所有数据的情况下使用该工作表 然而 我开始遇到一个问题 这可能是由于 baseU
  • 64 位 COM dll 和 C#/.Net 应用程序之间的免注册互操作

    我正在尝试在 64 位 COM dll 和 C 应用程序之间实现免注册 COM 互操作 在我之前的一个问题的回答中 我得到了帮助 使我能够在 C 的 64 位 COM dll 上成功调用 HelloWorld 方法 但是 这只能通过使用 r
  • 将大型复杂数组从 Python 传递到 C++ - 我的最佳选择是什么?

    2017 06 13 编辑 我尝试按照建议使用 boost 但是在花了超过 3 天的时间尝试编译和链接并失败后 我决定愚蠢的痛苦方法可能是最快且不那么痛苦的方法 所以现在我的代码只是保存了一堆巨大的文本文件 跨文件分割数组和数字的复数 虚部
  • EntityFramework:使用视图来扩展表

    我想使用视图将信息添加到这样的表中 public class PocoTable public int Id get set public partial class ImportStatingRecordError Migration p
  • 像整个链接一样在 下划线

    我试图用一行下划线 a 和 span 我希望这一切都是带有下划线的链接 它在单词和跨度之间留下了一个小空格 但它不应该这样 a href Saber mais span class glyphicon glyphicon menu righ
  • PHP 命令行:max_execution_time 和 memory_limit

    快问 如果我从命令行运行 php 脚本 通过 cron 作业 php somwthing sync php 我是否仍然受到 php max execution time 和 memory limit 的限制 Thanks Nathan 如果
  • Spark Kafka 流媒体问题

    我正在使用maven 我添加了以下依赖项
  • 如何将两个 jquery 对象包装成一个?

    我有两个功能 1 function foo elems elems each function foo selector1 selector2 calling foo 2 function bar elem1 elem2 some logi
  • C# WinForms - 如何将更新从 DataGridView 发送到数据库

    我有一个包含客户表和代理表的 mdb 文件 代理表迄今为止所做的唯一一件事就是填充每个客户的代理下拉列表 我有一个链接到 customerBindingSource 的 DataGridView customerBindingSource
  • 使用 firebase 隐藏第 3 方 API 密钥

    我正在使用 firebase 构建一个网站 这是一个简单的查找服务 只有一个输入元素 可以向第 3 方 API 发出请求 www 3rdparty com api myapikey method 问题是我每秒只能发出 x 个请求 并且无法向
  • PHP 5.2 中的 PHP date_parse_from_format() 替代方案

    由于 date parse from format 仅在 PHP 5 3 中可用 因此我需要编写一个函数来模仿其在 PHP 5 2 中的行为 是否可以为 PHP 5 2 编写此函数并使其以与 PHP 5 3 中完全相同的方式工作 Examp
  • 将函数参数重新声明为变量?

    我似乎无法在网络上的任何地方找到这个问题的答案 将函数参数重新声明为局部变量有什么原因 优点或缺点吗 Example function param1 param2 var param1 param2 etc 对我来说似乎非常多余 但也许我错
  • xmlpullparser 的 Android dalvik 转换

    我正在开发一个 Android 应用程序 对于一个组件 我可以在 Android 之外进行测试 因为它不使用任何 Android 代码 它使用 xstream 我有以下库 xstream1 4 6 xpp3 min 1 1 4c xmlpu
  • 在运行时动态加载程序集依赖项时出现问题

    让我尝试解释一下我的问题 我目前正在尝试开发一个用 Net编写的小型 插件框架 主要是为了进行一些实验 因此 我们的想法是拥有一个主应用程序 可以通过在主应用程序的特定文件夹 插件 中部署 dll 来添加 插件 一切工作正常 插件已正确实例
  • 具有相同 id 的多个组件在 android 中如何工作?

    我定义了几种布局 其中很少有 id 被多重定义 我很困惑它是如何工作的 为什么它不像我们在java代码中那样给出错误 最重要的是 环境如何决定需要调用哪个组件 我知道 id 生成的过程是自动化的 它被添加到 R java 中 例如 如果我们
  • 如何使用云函数触发数据流? (Python SDK)

    我有一个由云发布 订阅触发的云函数 我想要使 用 Python SDK 相同的函数触发数据流 这是我的代码 import base64 def hello pubsub event context if data in event mess
  • 基于多个 OCR 软件包输出来改进 OCR 结果的软件

    是否有现有的商业或学术软件可以 来自多个 OCR 软件包 Abbyy FineReader Adobe Acrobat Professional ReadIris 等 的叠加结果 根据从多个来源积累的知识提供完全自动化的改进 允许在运行时使
  • 如何在Robot Framework中执行JavaScript

    下面是我的代码 当我运行它时 它显示 WebDriverException 如何在 Robot Framework 中执行 JavaScript 代码 This return arguments 0 data ToolTip options
  • SQL Server SELECT 转 JSON 函数

    我想输出一个结果SELECT语句作为 JSON 对象 我希望这是一个Function而不是一个存储过程 例如下表用户 id name active 1 Bob Jones 1 2 John Smith 0 会像这样返回 id 1 name