首页 > 解决方案 > 将表格行转换为 json 格式

问题描述

我的表中有 1500 行。

在将表行转换为 json 时

查询 select * from tblbook for json auto

只有一行转换为 json。

请帮我。评论表示赞赏

示例 json 数据:

[    {
      "bid":0,
      "book_type":1,
      "book_id":"426128_1_En",
      "book_s50_due_dt":"2017-08-02T00:00:00",
      "book_s50_finish_dt":"2017-08-02T00:00:00",
      "book_s600_recd_dt":"2017-08-29T00:00:00",
      "book_s600_due_dt":"2017-08-28T00:00:00",
      "book_s600_finish_dt":"2017-08-29T00:00:00",
      "book_s650_recd_dt":"2017-08-29T00:00:00",
      "book_s650_due_dt":"2017-08-29T00:00:00",
      "book_s650_finish_dt":"2017-08-29T00:00:00",
      "book_cover_recd_dt":"2018-07-02T11:59:00",
      "book_cover_due_dt":"2018-07-05T11:59:00",
      "book_cover_recd_flag":false,
      "book_status_remarks":" 10-Succ 7\/20",
      "stage":"s200",
      "issue_pages":0,
      "book_ms_pages":0,
      "book_cover_pages":2,
      "book_blank_pages":0,
      "book_ce_pages":0,
      "book_inputrecdType":"Pdf",
      "book_processType":"Stapp",
      "book_copubname":"",
      "book_authcorr_status":0,
      "book_totalservice":2,
      "book_receiptType":"",
      "book_shortcutwf":1,
      "book_trichy_PE_tag":0,
      "book_trichy_CE_tag":0,
      "book_trichy_location":0,
      "book_trichy_art_location":0,
      "book_FastTrack":false,
      "book_Hold":false,
      "book_Withdrawn":false,
      "book_Project_Manager":"",
      "book_Spl_Instructions":true,
      "book_CreditLine":"",
      "book_Cust_Type":"LNCS ENGG",
      "book_arabic_pages":0,
      "book_roman_pages":0,
      "book_fm_elements":"",
      "book_bm_elements":"",
      "book_bw_figures_count":0,
      "book_color_figures_count":0,
      "book_scan_status":0

这是运行上述查询时的输出。

标签: sqlsql-server

解决方案


我已经用测试表尝试了该代码,它工作得很好,我的猜测是你有太多的行,所以要确保你可以尝试这个解决方法:

假设“bid”列是主键并且没有重复项,您可以尝试运行以下命令:

Select 'Select TOP 1 * from tblbook where bid = ' + cast(bid as varchar) + ' for json auto;' from tblbook

该代码将生成查询,并且每个查询都会为表的每一行转换一行,您所要做的就是复制粘贴并执行,在执行之前确保切换到“文本中的结果”(SQL Server 上的快捷键 Ctrl+T,然后 Ctrl+D 切换回网格),这应该是这样的(这个例子是我的测试表,是的,它是法语的):

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[{"Nom":1,"ProdId":100}]

(1 ligne affectée)

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[{"Nom":1,"ProdId":300}]

(1 ligne affectée)

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[{"Nom":1,"ProdId":500}]

(1 ligne affectée)

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[{"Nom":2,"ProdId":600}]

(1 ligne affectée)

您可以将其复制到 Notepad++ 之类的东西,以(1 ligne affectée)使用替换功能擦除不需要的重复文本(如破折号)。

这是很多工作,但我希望这可以帮助您摆脱问题。


推荐阅读