我假设我的问题的答案很简单,我自己也想不通。这是场景:我正在使用SQLServer2008R2,其中一个表有一个XML列,其中数据以下列格式保存:JohnLewisPerson节点可以有任意数量的子节点,它们的元素名称可能不同(事先不知道)。我正在寻找一个查询来返回一个XML,它具有所有节点的值作为属性。所以上述XML的输出应该是:我想不出一个查询来获得上述输出。我不想使用像这样的查询SelectPersonColumn.value('(/Person/firstName)[1]','varchar(100)')AS'@firstName',PersonColumn.value('(/
示例数据:我的目标是拥有adoku_nr(行的ID)、属性名称、属性值的列。我是通过实现的selectT.C.value('(../@adoku_nr)[1]','int')asID,T.C.value('local-name(.)','nvarchar(128)')asName,T.C.value('(.)[1]','nvarchar(max)')asValuefrom@Data.nodes('/Data/row/@*')asT(C)结果:IDNameValue1694351preis2.40001694351anzahl72.00001694351rabatt0.000016943
我有数据以XML形式进入存储过程。其中一个元素是DateTime值。有时当我得到它具有“Z”时区名称的值时,其他时候可能没有。我正在寻找某种方法来始终从该元素中检索日期值。使事情复杂化的是,数据库实例类型之间的结果似乎不同。兼容级别为2005的2005实例与兼容级别为2005的2008R2实例的行为不同。这是一个示例查询,用于简化问题的演示。有3个不同的日期元素,一个具有相同日期,一个具有时区标识,第三个使用“无”/空日期格式:DECLARE@p_LogInfoXML,@datetimevalVarchar(50),@tzdatetimevalVarchar(50);set@datet
我有一个xml如下:BestofPopABCstudioJohn36Jessica20NurseryrhymesXYZstudioJudy10Rachel15此文件可能包含数百万条记录。我的MSSQL数据库,运行于AzureSQLDatabase,有以下2个表来存储这些记录:Record(RecordId[PK,identity,auto-increment],Name,Studio)艺术家(RecordId[外键引用Record.RecordId],艺术家姓名,年龄)是否可以在Record表中批量插入记录,获取RecordIds,然后在一次遍历xml中批量插入艺术家信息到Artist
我有这个xml结构。我使用以下sql来读取值,但它不起作用DECLARE@xXML=''DECLARE@iDocINTEXECUTEsp_xml_preparedocument@iDocOUTPUT,@xSELECT*FROMOPENXML(@iDoc,'/Events/Event')WITH(IDint'@ID',DateTimeGMT[varchar](100)'@DateTimeGMT',Branch[varchar](100)'@Branch',Sport[varchar](100)'@Sport',BranchIDint'@BranchID',League[varchar](
我想知道,如何将任意文件中的XML内容加载到局部变量中?这适用于固定文件:DECLARE@xmlXMLSET@xml=(SELECT*FROMOPENROWSET(BULK'C:\data.xml',SINGLE_BLOB)ASdata)但是,我想从任意文件加载数据。这不起作用(因为BULK似乎只支持字符串参数)DECLARE@fileNVARCHAR(MAX)='C:\data.xml'DECLARE@xmlXMLSET@xml=(SELECT*FROMOPENROWSET(BULK@file,SINGLE_BLOB)ASdata)我还尝试了以下方法(没有成功,因为执行EXEC时局部
我有一个SQL查询返回下面的XMLelectronics0x58phones0x5AC0curvy-simplicity65546等等我想要的输出是一个包含两列(Url和ShortenedUrl)的表,数据以url方式连接,如下所示。Url|ShortenedUrlelectronics/phones/curvy-simplicity|0x58/0x5AC0/65546等等有人能帮忙吗?祝好 最佳答案 您可以像这样使用xquery:selectstuff(@data.query('for$iinrow/urlSegmentretur
我正在尝试获取一个SQLselect语句来生成符合Solr标准的XML。给定一个表格:id|name---------1|one2|two3|three我需要一个类似于(有或没有根节点)的结果:1one2two3three是否可以使用FORXML查询生成该结构,或者我是否需要XSLT或其他一些机制来匹配该架构? 最佳答案 这是使用构造函数的一种稍微不同的方式。DECLARE@sampleTABLE([id]intNOTNULL,[name]varchar(50)NOTNULL);INSERTINTO@sample([id],[nam
我正在尝试从使用方法本地内存流初始化它的方法返回一个SqlXml对象。即using(StreammemoryStream=newMemoryStream()){using(XmlWriterwriter=XmlWriter.Create(memoryStream,newXmlWriterSettings{OmitXmlDeclaration=true})){serializer.Serialize(writer,myList.ToArray(),ns);returnnewSqlXml(memoryStream);}}现在调用它并尝试访问它的字段的方法因objectdisposedexc
无法获得所需的XML输出以下内容:SELECT1asTag,0asParent,sIDas[Document!1!sID],docIDas[Document!1!docID],nullas[To!2!value]FROMdocSVsyswith(nolock)wheredocSVsys.sID='57'UNIONALLSELECT2asTag,1asParent,sID,NULL,valueFROMdocMVtextWHEREdocMVtext.sID='57'ORDERBY[Document!1!sID],[To!2!value]FORXMLEXPLICIT;产生:我想要的是:3.8