草庐IT

SQL选择一行的后代

全部标签

xml - xsl 只递归复制一些元素并删除一些后代

我要转型进入用简单的英语来说,我想递归地复制颜色元素,包括文本,忽略XML文档的其余部分并丢弃绿色元素。上面的示例有一些解决方案,但如果XML稍有不同,就会失败。例如,在color元素下添加nest元素,或者在colorother元素/strong>元素,或在color元素范围内的文本(GOODTEXT)和另一个在其范围之外的文本(BADTEXT)。GOODTEXTBADTEXTBADTEXTTWO我最感兴趣的是通用的解决方案,而不是针对此处介绍的示例进行定制。 最佳答案 这个新的转换足够通用以复制颜色元素无论它们的父元素是什么。我

sql-server - 使用 T-SQL 有条件地删除 SQL Server 中 XML 字段中的 XML 元素

我想有条件地删除SQLServer2005上XML字段中的元素。例如,我有以下数据:如何使用T-SQL删除日期值早于一天的统计元素?理论上,我想理想的解决方案可以表示为:UPDATEXML_TESTSETXML_DATA_FIELD.modify('delete(/stats/stat)')WHEREXML_DATA_FIELD.nodes('/stats/stat').value('@date','datetime')这当然行不通。 最佳答案 这应该可以达到您的要求:declare@testXmlxml='',@yesterday

sql-server - 如何在 XML PATH 查询上创建 View 或函数?

我正在使用SSMS2008进行以下查询:DECLARE@TestDataTABLE(address_descNVARCHAR(100)NULL,people_idUNIQUEIDENTIFIERNULL);INSERT@TestDataSELECTa.address_desc,a.people_idFROMdbo.address_viewaSELECTa.people_id,(SELECTSUBSTRING((SELECT';'+b.address_descFROM@TestDatabWHEREa.people_id=b.people_idFORXMLPATH('')),2,4000)

sql-server - SQL Server 从 XML 参数到表 - 使用可选的子节点

在SQLServer2008R2上,我试图将XML值读取为表。到目前为止,我在这里:DECLARE@XMLValueASXML;SET@XMLValue='14532011-10-272011-11-0421012117';SELECTRoom.value('(NumberOfADT)[1]','INT')ASNumberOfADTFROM@XMLValue.nodes('/SearchQuery/Room')ASSearchQuery(Room);如您所见,Room节点有时会得到CHD子节点,但有时不会。假设我将此XML值作为存储过程参数获取。因此,我需要使用这些值来查询我的数据库表

xml - 在 XQuery 中,如何根据给定谓词递归过滤后代?

鉴于此XML片段:运行查询$root//A会得到A及其所有后代。到目前为止一切顺利。我想要的是通过谓词过滤A的后代,比如[@visible=true]。我希望查询返回相反,即。过滤掉所有与谓词不匹配(或其父元素不匹配)的子元素。想像一个用XML描述的GUI系统,在呈现它时我会在其中过滤可见元素的树。我认为这对于XSLT来说是微不足道的,但我一定会使用XQuery。 最佳答案 它也可以在XQuery中轻松完成。只要有一个函数递归地重写合格的节点,同时应用过滤器:declarefunctionlocal:rewrite($nodeasn

SQL 从包含 xml 的 nvarchar 列中透视动态列

我得到了一个包含以下列和一些示例数据的表格:IDTitleFieldsXml[nvarchar(max)]--------------------------------1Ax1y12By2z23Cz3我需要查询它以获得这样的结果:IDTitleXYZ-------------1Ax1y12By2z23Cz3xml字段应该保证格式正确并且与模式匹配,即使它是nvarchar而不是xml类型。但是,无法提前知道Name属性的值。我正在使用SQLServer2008。如有必要,我可以使用存储过程,但我正在寻找一种可以避免这种情况并避免动态SQL的解决方案。写这样的查询是不可能的吗?如果存储

xml - 如何编写 xpath 来选择文本中包含特殊字符(如撇号)的节点?

如何编写一个xpath来选择一个节点,其文本包含特殊字符,例如'这是一种无效的inxpath?GeneralMarketing'BrochuresValue-AddedAboutHendersonOwntheWorld和varbranchName="GeneralMarketing'";varxPath=String.Format("/Nodes/Node[Text='{0}']",branchName);上述xpath失败,因为xPath包含以下文本:/Nodes/Node[Text='GeneralMarketing'']如您所见,有2个撇号。到目前为止,从我的测试来看,只有'.不

xml - 在 SQL Server 2008 中导出包含 XML 数据列的表

我需要从数据库中导出SQLServer2008中的表,然后将该表恢复到本地数据库。问题是其中一列包含XML数据。最有效的方法是什么? 最佳答案 您也可以尝试“导出数据”向导。考虑到您的情况,这应该很有效。 关于xml-在SQLServer2008中导出包含XML数据列的表,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8991187/

xml - 使用 xsl 选择填充变量

结果变量已填充,这里我使用了xslchoose语句。我只是想知道是否有任何其他有效或简单的方法来填充结果变量,基于与xslchoose相同的逻辑。像这样以上内容适用于节点集,不适用于变量。任何输入?xsl1.0 最佳答案 SomethinglikethisTheabovewillworkfornodesets,notforvariables.Anyinputs?xsl1.0这是错误的!上面的result变量被定义为包含三个节点集的联合——而不仅仅是其中一个,这取决于其他一些(其中s)个是空的。在这种情况下正确的XPath表达式是:$

sql-server - 对于将所有列名作为同一元素返回的 XML

我有一个返回xml的要求,如下所示1setup/pagemstPageMaster2setup/modulesModuleMaster我使用了以下查询,但它不起作用selectpageidid,pgurlcell,pgnamecellfromm_pagesforxmlraw所有列的相同列名在oracle中工作正常,但在SQLServer2005中却不行。有什么想法吗?提前致谢黛布 最佳答案 使用FORXMLPATHSQLServer2005和更新版本中可用的语法-尝试这样的事情:DECLARE@tableTABLE(PageIDIN