SQL Server:如何将所有行的数据作为 Json 对象查询到其他列旁边?

2024-01-07

I have data like this: enter image description here

I want to query result like this: enter image description here

这是我的代码

SELECT
     PML_CODE
    ,PML_NAME_ENG
    ,(
        SELECT
              PML_ID
             ,PML_NO
             ,PML_CODE
             ,PML_NAME_ENG
             ,PML_FORMULA
        FROM DSP.PARAMET_LIST AS A WITH(NOLOCK)
        WHERE A.PML_ID = B.PML_ID 
        FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
    ) AS BR_OBJECT
FROM DSP.PARAMET_LIST AS B WITH(NOLOCK)

我的代码可以满足我的需求,但我想知道是否有更好、更快的方法来编写此查询?


下次请不要发布图片,而是尝试创建一些 DDL,用示例数据填充它并说明您自己的尝试和预期输出。这使我们更容易理解并回答您的问题。

你可以这样尝试:

DECLARE @tbl TABLE(PML_ID BIGINT, PML_NO INT, PML_CODE VARCHAR(10), PML_NAME_ENG VARCHAR(10), PML_FORMULA VARCHAR(10));
INSERT INTO @tbl VALUES
 (2017102600050,1,'KHR','Riel','01')
,(2017102600051,2,'USD','Dollar','02')
,(2017102600052,3,'THB','Bath','05')

SELECT
     PML_CODE
    ,PML_NAME_ENG
    ,BR_OBJECT
FROM @tbl
CROSS APPLY(
    SELECT
    (
            SELECT
                  PML_ID
                 ,PML_NO
                 ,PML_CODE
                 ,PML_NAME_ENG
                 ,PML_FORMULA
            FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
    )) AS A(BR_OBJECT);

与你自己的方法最大的区别是我使用CROSS APPLY使用我们已有的列而不是调用相关子查询.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server:如何将所有行的数据作为 Json 对象查询到其他列旁边? 的相关文章

随机推荐

  • PayPal API 定期付款

    我需要向我的网站添加定期付款 注册前 用户必须支付例如 1 个月 10 英镑的费用 此后每月支付 9 英镑 我尝试根据 PayPal 1 创建定期付款 但在 IPN 中 我没有收到 subscr signup 或其他响应 当我完成 doEx
  • Flash Builder 4 现在使用 AIR 2 吗?

    我刚刚获得了 CS5 主套件 其中包括 Flash Builder 4 和 Flash CS5 Pro 当我在 CS5 pro 中创建新的 AIR 应用程序时 它显示 AIR 2 但是当我在 Flash Builder 中创建新的 AIR
  • 字符串索引超出范围:n

    我每次执行这段代码时都会遇到一些问题 它会给我一个错误 字符串索引超出范围 n n 是编号 在与此代码相关的文本框中输入的字符数 即文本框 t2 它卡在第一个文本框 检查它是否不会转到数组中提到的下一个文本框 Object c1 t2 ge
  • Jquery 抛出 IE 特定错误

    看小提琴 http jsfiddle net JWSaZ http jsfiddle net JWSaZ 这在 Chrome FF 中工作正常 但在 Internet Explorer 中它会在 Jquery 文件中给出错误 Webpage
  • 使用 SymmetricDifference 比较两个文件夹中的不同文件

    var dir1Files dir1 GetFiles SearchOption AllDirectories var dir2Files dir2 GetFiles SearchOption AllDirectories var diff
  • 我可以用mpAndroidChart绘制渐变折线图吗?

    我可以画一个如图所示的折线图吗 如果可以的话 我应该怎么做才能改变线条颜色 谢谢你 我画的看起来像图二 线条颜色相同 并且没有昨天的incom 我应该怎么做才能将线条更改为渐变颜色并只显示最后一个markerView 我画的图 https
  • Android中的Pdf渲染器转换的​​图像是透明背景

    我是android开发的新手 我正在努力将 Pdf 转换为图像并将其存储在某个位置 我使用 PdfRenderer API 级别 21 将 PDF 转换为位图图像 转换后的图像是透明背景 请指导我将图像转换为白色背景 这样我就可以将其转换为
  • Swift - 发送 POST 请求时从 NSURLSession 返回数据

    我可以使用下面的代码在 Swift 中发送 POST 请求 func post gt String let request NSMutableURLRequest URL NSURL string http myserverip myfil
  • 使用 python 对点进行排序以获得连续曲线

    我有一个未排序点的列表 列表 50 6261 74 3683 63 2489 75 0038 76 0384 75 6219 79 8451 75 7855 30 9626 168 085 27 381 170 967 22 9191 17
  • PyCharm 中 Python 控制台和终端的区别

    我是 Python 初学者 我最近开始使用 PyCharm 但我不知道终端和控制台有什么区别 终端中的某些命令在控制台中不起作用 在讨论差异之前 我们需要先谈谈两者在实践中的区别 终端本质上取代了 Windows 上的命令提示符 电源外壳和
  • MinGW 错误:“线程”不是“std”的成员

    我正在尝试为 Windows 交叉编译一个简单的应用程序 include
  • 为什么gmtime要这样实现呢?

    我偶然发现了 Minix 的 gmtime 函数的源代码 我对从纪元以来的天数计算年份数的位感兴趣 以下是该部分的内容 http www raspberryginger com jbailey minix html gmtime 8c so
  • 通过 COM 将 DataTable 传递到 R

    我试图将数据从 SQL 传递到 C 然后传递到 R 服务器进行数据分析 然后返回到我的 Web 应用程序 但是 我使用的 COM 接口不允许在 C 和 R 之间传递复杂的数据类型 无数据表 我过去使用以下代码让它工作 int count d
  • NSTask 阻塞主线程

    我正在使用 NSTask 但是当我启动任务时 它会阻塞主线程 因此我无法更新它 直到任务结束 这是我的代码 NSString hostsforping google es pingdata NSTask alloc init pingdat
  • 使用 ListFragment 填充自定义视图列表

    我正在尝试使用片段在列表视图中显示元素 我创建了自定义视图 如下所示 list row xml 的图形表示 列表行 xml
  • 如何恢复过期的令牌[AWS Cognito]?

    我的网站使用 AWS 1 小时后 令牌就会过期 用户几乎无法执行任何操作 现在我正在尝试像这样刷新凭据 function getTokens session return accessToken session getAccessToken
  • 身份服务器单点注销,也从服务器注销

    这是我在依赖方中使用的注销代码 FederationConfiguration cfg FederatedAuthentication FederationConfiguration var fam FederatedAuthenticat
  • 使用 Marionette.ItemView 获取没有模型的视图?

    是否常规使用Marionette ItemView对于没有特定的视图类model与他们相关的财产 As Marionette View并不意味着可以直接使用 它看起来像一个ItemView作为具有方便的默认值和绑定的视图类是有意义的 或者
  • PHP PDO Sqlsrv 始终以字符串形式返回每个值

    如何从具有正确字段类型的数据库中获取值 我使用 PDO Sqlsrv 从数据库获取数据 并且总是以字符串形式接收数据 如下所示 customer id 1 My customer id字段类型应该是整数customer id 1 But p
  • SQL Server:如何将所有行的数据作为 Json 对象查询到其他列旁边?

    I have data like this I want to query result like this 这是我的代码 SELECT PML CODE PML NAME ENG SELECT PML ID PML NO PML CODE