pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<legend id='mY5FN'><style id='mY5FN'><dir id='mY5FN'><q id='mY5FN'></q></dir></style></legend>
  • <i id='mY5FN'><tr id='mY5FN'><dt id='mY5FN'><q id='mY5FN'><span id='mY5FN'><b id='mY5FN'><form id='mY5FN'><ins id='mY5FN'></ins><ul id='mY5FN'></ul><sub id='mY5FN'></sub></form><legend id='mY5FN'></legend><bdo id='mY5FN'><pre id='mY5FN'><center id='mY5FN'></center></pre></bdo></b><th id='mY5FN'></th></span></q></dt></tr></i><div class="fnrblvf" id='mY5FN'><tfoot id='mY5FN'></tfoot><dl id='mY5FN'><fieldset id='mY5FN'></fieldset></dl></div>
    • <bdo id='mY5FN'></bdo><ul id='mY5FN'></ul>

    <tfoot id='mY5FN'></tfoot>

        <small id='mY5FN'></small><noframes id='mY5FN'>

        SQL 數(shù)據(jù)作為 XML 元素

        SQL Data as XML Element(SQL 數(shù)據(jù)作為 XML 元素)

        • <bdo id='jh5eQ'></bdo><ul id='jh5eQ'></ul>

              1. <i id='jh5eQ'><tr id='jh5eQ'><dt id='jh5eQ'><q id='jh5eQ'><span id='jh5eQ'><b id='jh5eQ'><form id='jh5eQ'><ins id='jh5eQ'></ins><ul id='jh5eQ'></ul><sub id='jh5eQ'></sub></form><legend id='jh5eQ'></legend><bdo id='jh5eQ'><pre id='jh5eQ'><center id='jh5eQ'></center></pre></bdo></b><th id='jh5eQ'></th></span></q></dt></tr></i><div class="lb7zhtx" id='jh5eQ'><tfoot id='jh5eQ'></tfoot><dl id='jh5eQ'><fieldset id='jh5eQ'></fieldset></dl></div>
                <tfoot id='jh5eQ'></tfoot>

                    <tbody id='jh5eQ'></tbody>
                  <legend id='jh5eQ'><style id='jh5eQ'><dir id='jh5eQ'><q id='jh5eQ'></q></dir></style></legend>

                  <small id='jh5eQ'></small><noframes id='jh5eQ'>

                  本文介紹了SQL 數(shù)據(jù)作為 XML 元素的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                  問(wèn)題描述

                  限時(shí)送ChatGPT賬號(hào)..

                  我對(duì)用 SQL 生成 XML 有點(diǎn)陌生.我正在嘗試從此查詢生成 XML:

                  I am somewhat new on generating XML out with SQL. I am trying to generate XML from this query:

                  SELECT RptType, DataType, Branch, ACC, Actual 
                  FROM ReportingTb
                  

                  查詢產(chǎn)生以下結(jié)果:

                  RptType   DataType   Branch    Acc    Actual
                  -------   --------   -------   ----   -----------
                  MTD       UPS        Arizona   Total  2279.00000
                  MTD       UPS        Arizona   Oral   543.00000
                  MTD       UPS        Arizona   Tube   532.00000
                  MTD       UPS        Arizona   Other  1.00000
                  

                  我想將前 4 列中的查詢結(jié)果實(shí)際用作 XML 元素,如下所示:

                  I want to use the query results in the first 4 columns the actual as XML elements like this:

                  <MTD>
                    <UPS>
                      <Arizona>
                        <Total>
                          <Actual>2279.00000</Actual>
                        </Total>
                        <Oral>
                          <Actual>543.00000</Actual>
                        </Oral>
                        <Tube>
                          <Actual>532.00000</Actual>
                        </Tube>
                        <Other>
                          <Actual>1.00000</Actual>
                        </Other>
                      </Arizona>
                    <UPS>
                  </MTD>
                  

                  有人能指出我正確的方向嗎?我應(yīng)該使用 T-SQL 并遍歷查詢結(jié)果以制作 XML 文件嗎?

                  Can someone point me in the right direction on how to do this? Should I maybe use T-SQL and loop through the results of the query in order make the XML file?

                  感謝您的幫助!

                  推薦答案

                  這在技術(shù)上是可行的,但由于一些原因,它確實(shí)很糟糕.相反,您應(yīng)該重新考慮您的 XML 結(jié)構(gòu),使其更像這樣:

                  It's technically possible, but it's really bad for a few reasons. Instead, you should rethink your XML structure, to something more like this:

                  <Root>
                    <ReportingTb RptType="MTD" DataType="UPS" Branch="Arizona">
                      <Actual Acc="Total">2279.00000</Actual>
                      <Actual Acc="Oral">543.00000</Actual>
                      <Actual Acc="Tube">532.00000</Actual>
                      <Actual Acc="Other">1.00000</Actual>
                    </ReportingTb>
                  </Root>
                  

                  使用此查詢:

                  DECLARE @t TABLE (RptType varchar(20),   DataType VARCHAR(20),   Branch VARCHAR(20),    Acc VARCHAR(20),   Actual numeric(10,5));
                  INSERT @t VALUES
                  ('MTD',  'UPS'        ,'Arizona',   'Total',  2279.00000)
                  ,('MTD',  'UPS'        ,'Arizona',   'Oral',  543.00000)
                  ,('MTD',  'UPS'        ,'Arizona',   'Tube',  532.00000)
                  ,('MTD',  'UPS'        ,'Arizona',   'Other',  1.00000);
                  
                  SELECT RptType as '@RptType'
                      ,DataType as '@DataType'
                      ,Branch as '@Branch'
                      ,(SELECT 
                           Acc AS '@Acc'
                          ,Actual as '*'
                      FROM @t t2
                      WHERE t2.RptType = t1.RptType AND t2.DataType = t1.DataType AND t2.Branch = t1.Branch
                      FOR XML PATH('Actual'), TYPE)
                  FROM @t t1
                  GROUP BY RptType, DataType, Branch
                  FOR XML PATH('ReportingTb'), ROOT('Root');
                  

                  這為您提供了可以根據(jù)模式(而不是必須包含許多可能的節(jié)點(diǎn)名稱的模式)進(jìn)行合理驗(yàn)證的 XML.它將更自然地處理不同的分組可能性,并將處理 FOR XML 在幕后處理的所有 XML 怪異現(xiàn)象.

                  This gives you XML that can be sensibly validated against a schema (instead of a schema that has to contain many possible node names). It will handle different grouping possibilities more naturally, and it will take care of all the XML weirdness that FOR XML handles behind the scenes.

                  也就是說(shuō),技術(shù)上可以實(shí)現(xiàn)你最初的愿望;這是一個(gè)可以做到的查詢:

                  That said, it is technically possible to achieve your original desire; here's a query that would do it:

                  SELECT 
                      CAST('<' + RptType + '>'
                      + (SELECT 
                          '<' + DataType + '>' 
                          + (SELECT
                              '<' + Branch + '>'
                              + REPLACE(REPLACE(
                              (SELECT
                                   '#' + acc + '!' as '*' , Actual, '#/' + acc + '!' as '*'
                                  FROM @t t4 WHERE t4.Branch = t3.Branch AND t4.DataType = t2.DataType AND t4.RptType = t1.RptType
                                  FOR XML PATH('')), '#', '<'), '!', '>')
                  
                              + '</' + Branch + '>'
                              FROM  @t t3  WHERE t3.DataType = t2.DataType AND t3.RptType = t1.RptType GROUP BY Branch)
                          + '</' + DataType + '>'
                          FROM @t t2  WHERE t2.RptType = t1.RptType GROUP BY DataType)
                      + '</' + RptType + '>'  AS XML)
                  FROM @t t1
                  GROUP BY RptType
                  

                  請(qǐng)注意,您不應(yīng)該這樣做,這真的很丑陋(我只是向您展示,讓您了解即使參與其中也有多么丑陋).它真的只會(huì)變得更糟.我正在使用奇怪的字符串替換,可能會(huì)或可能不會(huì)在野外工作.最重要的是,如果任何節(jié)點(diǎn)具有無(wú)效的 XML 字符,則必須對(duì)其進(jìn)行轉(zhuǎn)義 - 可能會(huì)添加一些額外的替換 (REPLACE(col, '<', '&lt;')) 或其他東西,但這又是丑陋的,并且必須對(duì)幾個(gè)值重復(fù)一遍.您基本上是將 SQL Server 用作 XML 編寫器,而實(shí)際上并不是要這樣做.如果你絕對(duì)必須有這個(gè)結(jié)構(gòu),那么你應(yīng)該將數(shù)據(jù)傳遞給一個(gè)CLR類,該類可以正確使用XmlWriterXDocument之類的東西來(lái)編寫使用這些值的實(shí)際 XML.您甚至可以將 CLR 類放在 SQL Server 中并從存儲(chǔ)過(guò)程中調(diào)用它.

                  Note that you should not do this, it's really ugly hackery (I'm only showing you to give you an idea of how ugly even to get part of the way there). It really only gets worse. I'm using weird string replaces that may or may not work in the wild. On top of that, if any node has an invalid XML character, you'd have to escape it - maybe throw in some additional replaces (REPLACE(col, '<', '&lt;')) or something, but again that's ugly and has to be repeated all over for several values. You're basically using SQL Server as an XML Writer, and it's really not meant to do that. If you absolutely must have this structure, then you should pass the data to a CLR class that can properly use something like XmlWriter or XDocument to write the actual XML using these values. You could even put the CLR class in SQL Server and call it from the stored procedure.

                  這篇關(guān)于SQL 數(shù)據(jù)作為 XML 元素的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

                  相關(guān)文檔推薦

                  Can I figure out a list of databases and the space used by SQL Server instances without writing SQL queries?(我可以在不編寫 SQL 查詢的情況下找出數(shù)據(jù)庫(kù)列表和 SQL Server 實(shí)例使用的空間嗎?) - IT屋-程序員軟件開(kāi)發(fā)
                  How to create a login to a SQL Server instance?(如何創(chuàng)建對(duì) SQL Server 實(shí)例的登錄?)
                  How to know the version and edition of SQL Server through registry search(如何通過(guò)注冊(cè)表搜索知道SQL Server的版本和版本)
                  Why do I get a quot;data type conversion errorquot; with ExecuteNonQuery()?(為什么會(huì)出現(xiàn)“數(shù)據(jù)類型轉(zhuǎn)換錯(cuò)誤?使用 ExecuteNonQuery()?)
                  How to show an image from a DataGridView to a PictureBox?(如何將 DataGridView 中的圖像顯示到 PictureBox?)
                  WinForms application design - moving documents from SQL Server to file storage(WinForms 應(yīng)用程序設(shè)計(jì)——將文檔從 SQL Server 移動(dòng)到文件存儲(chǔ))

                        <bdo id='eC4Cq'></bdo><ul id='eC4Cq'></ul>
                      • <i id='eC4Cq'><tr id='eC4Cq'><dt id='eC4Cq'><q id='eC4Cq'><span id='eC4Cq'><b id='eC4Cq'><form id='eC4Cq'><ins id='eC4Cq'></ins><ul id='eC4Cq'></ul><sub id='eC4Cq'></sub></form><legend id='eC4Cq'></legend><bdo id='eC4Cq'><pre id='eC4Cq'><center id='eC4Cq'></center></pre></bdo></b><th id='eC4Cq'></th></span></q></dt></tr></i><div class="f7dtzdz" id='eC4Cq'><tfoot id='eC4Cq'></tfoot><dl id='eC4Cq'><fieldset id='eC4Cq'></fieldset></dl></div>

                          <legend id='eC4Cq'><style id='eC4Cq'><dir id='eC4Cq'><q id='eC4Cq'></q></dir></style></legend>
                              <tbody id='eC4Cq'></tbody>

                            <small id='eC4Cq'></small><noframes id='eC4Cq'>

                            <tfoot id='eC4Cq'></tfoot>
                            主站蜘蛛池模板: 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | AGV叉车|无人叉车|AGV智能叉车|AGV搬运车-江西丹巴赫机器人股份有限公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 深圳市八百通智能技术有限公司官方网站 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 |