久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Azure Synapse 如何交叉應用 JSON 路徑

Azure Synapse how to CROSS APPLY JSON PATH(Azure Synapse 如何交叉應用 JSON 路徑)
本文介紹了Azure Synapse 如何交叉應用 JSON 路徑的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想根據另一個表中的幾個字段動態提取數據行,并在將其作為單行加入時將其匯總為 JSON.

I'd like to dynamically pull rows of data based on a few fields from another table and summarize it as JSON when joining it in as a single row.

這是一個小例子來說明.

Here's a small example to illustrate.

[測試].[dbo].[tableA]

<頭>
Col1Col2
1
2ii
3iii

[測試].[dbo].[tableB]

<頭>
A_idB_Col1B_Col2
1b11b12
1b111b112
2b21b22
2b22b222

查詢:

      SELECT * FROM [Test].[dbo].[tableA] as A
        CROSS APPLY (
          SELECT (
              SELECT * FROM [Test].[dbo].[tableB] as B
              WHERE B.A_id = A.Col1
              FOR JSON PATH
          ) as B_JSON
      ) as CA

結果(在 SQL Server 中符合預期)

Result (as expected in SQL Server)

<頭>
Col1Col2B_JSON
1[{A_id":1,B_Col1":b11",B_Col2":b12"},{A_id":1,B_Col1":b111",B_Col2":b112"}]
2ii[{A_id":2,B_Col1":b21",B_Col2":b22"},{A_id":2,B_Col1":b22",B_Col2":b222"}]
3iiiNULL

Azure Synapse 無服務器 SQL 池中的結果:

該查詢引用了分布式中不支持的對象處理方式.

The query references an object that is not supported in distributed processing mode.

問題是,它不喜歡 FOR JSON 結果周圍的 SELECT,但我們需要它來分配一個列名,以便交叉應用工作.

Trouble is, it doesn't like the SELECT around the FOR JSON result, but we need that to assign a column name such that the Cross Apply works.

問題是這樣的;在這種情況下實現這一目標的最佳方法是什么?

Question is thus; what is the best way to achieve this within this context?

推薦答案

我無法在您的環境中對此進行測試,因此這可能不起作用...您可以嘗試以下方法之一:

I cannot test this in your environment, so this might not work... You can try one of these:

DECLARE @tblA TABLE(Col1 INT, Col2 VARCHAR(10));
INSERT INTO @tblA(Col1,Col2) VALUES
 (1,'i')
,(2,'ii')
,(3,'iii');

DECLARE @tblB TABLE(A_id INT,B_Col1 VARCHAR(10),B_Col2 VARCHAR(10));
INSERT INTO @tblB(A_id,B_Col1,B_Col2) VALUES
 (1,'b11','b12')
,(1,'b111','b112')
,(2,'b21','b22')
,(2,'b22','b222');

--在 CA 名稱后面傳遞列名稱(避免嵌套的 SELECT)

--Pass the column's name behind the CA's name (avoids the nested SELECT)

  SELECT * FROM @tblA as A
    CROSS APPLY (
          SELECT * FROM @tblB as B
          WHERE B.A_id = A.Col1
          FOR JSON PATH
      ) CA(B_JSON);

--使用標量子選擇完全避免 CA

--Avoid the CA totally by using a scalar sub-select

  SELECT A.Col1
        ,A.Col2
        ,(
          SELECT * FROM @tblB as B
          WHERE B.A_id = A.Col1
          FOR JSON PATH
         ) AS B_JSON
  FROM @tblA as A;

這篇關于Azure Synapse 如何交叉應用 JSON 路徑的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Modify Existing decimal places info(修改現有小數位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 亚洲成人网在线观看 | 性大毛片视频 | 国产精品一区二区三区四区 | 欧美日韩网站 | 91在线看| 久久久成人网 | 国产精品亚洲成在人线 | 色先锋影音 | 国产精品1区2区3区 欧美 中文字幕 | 国产一区91精品张津瑜 | 91啪亚洲精品 | 日韩和的一区二在线 | 国产美女网站 | 亚洲午夜在线 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产激情在线 | 五月激情婷婷六月 | 精品视频久久久 | 国产精品高潮呻吟久久 | 黄色一级大片在线免费看产 | www.天天干.com | 一二三四在线视频观看社区 | 瑞克和莫蒂第五季在线观看 | 久草在线青青草 | 亚洲综合在线视频 | 久久久久久久久久久福利观看 | 中文字幕精品一区久久久久 | 久久精品一区 | 国产视频中文字幕 | 亚洲永久精品国产 | 欧美二三区 | 欧美一区二区三区视频 | 91在线| 欧洲成人午夜免费大片 | 99久久久国产精品 | 午夜激情小视频 | 日本精品一区二区三区在线观看视频 | 美女黄频 | 国产清纯白嫩初高生视频在线观看 | 午夜在线| 日韩精品区 |