草庐IT

【LeetCode】学习计划——SQL入门

全部标签

sql - 有没有比这更快的方法从 T-SQL 中的 XML 节点中提取数据?

我目前正在尝试在T-SQL中创建一个存储过程,它将一个XML表作为其输入,然后将其中的数据插入到一个临时表中。我使用的XML格式如下:我用来将此XML数据插入临时表的SQL格式如下:INSERTINTO#TempTableSELECTT.c.value('@MyFirstColumn','varchar(50)'),T.c.value('@MySecondColumn','varchar(50)'),...FROM@x.nodes('//Table/row')T(c)但是,我使用的是包含150列和超过200,000行的XML表。目前,在10,000行上执行此SQL大约需要142秒,因此

SQL优化: Xml or Delimited String

希望这只是一个涉及Sql2008查询性能优化的简单问题。我曾为在ETL流程和部分网站中大量使用存储过程的公司工作过。我见过他们需要根据一组有限的键值检索特定记录的场景。我已经看到它以3种不同的方式处理,如下面的伪代码所示。连接字符串并执行它的动态SQL。EXEC('SELECT*FROMTableXWHERExIdIN('+@Parameter+')'使用用户定义的函数将分隔的字符串拆分成表格SELECT*FROMTableYINNERJOINSPLIT(@Parameter)ONyID=splitId使用XML作为参数而不是分隔的varchar值SELECT*FROMTableZJO

sql-server - 如何解析sql server中的xml以处理DateTime DataType中的NULL值

我已经在sqlserver中创建了一个示例查询来解析来自xml的数据并立即显示它。虽然我会将这些数据插入到我的表中,但在此之前我面临一个简单的问题。我想在日期时间字段ADDED_DATE="NULL"中插入NULL,如下面的xml所示。但是当我执行这个查询时。它给我错误从字符串转换日期时间时转换失败。我做错了什么。请突出显示我的错误。declare@xmlvarchar(1000)set@xml=''declare@handleintexecsp_xml_preparedocument@handleoutput,@xmlselect*fromOPENXML(@handle,'/ROOT

sql-server - 是否可以为 XML 中的数据安排外键约束?

XML列中的一些节点值引用已知表的整数主键。有没有可能让SQLServer检查这种外键关系? 最佳答案 答案是否定的,你不能。您不能直接使用XMLvalue()在FOREIGNKEY关系。为了好玩,我尝试创建一个计算列,其结果是调用.value('','int')包装在用户定义的函数中。问题是您也不能在FOREIGNKEY中使用计算列。关系。在实际约束之外,您可以尝试对传入的INSERT执行验证和UPDATE触发器中的语句......但这已经成为一个困惑的解决方案。正如Damien所说-如果您想强制执行外键约束,这实际上不属于XML

sql-server - 查询多个 XML 值

BobVillaTomWhateverSarahkajdl我如何查询拥有TomWhatever作者的任何记录?我见过的大多数查询示例都引用值[x],但我想搜索所有作者。DECLARE@authorasvarchar(100)SET@author='TomWhatever'SELECTxmlfield.value('/book/author')WHERExmlfield.value('/book/author')=@author 最佳答案 答案在这里DECLARE@xXMLSET@x='BobVillaTomWhateverSarah

sql - 如何连接来自 SQL Server XML 查询的数据?

我有一个SQL查询返回下面的XMLelectronics0x58phones0x5AC0curvy-simplicity65546等等我想要的输出是一个包含两列(Url和ShortenedUrl)的表,数据以url方式连接,如下所示。Url|ShortenedUrlelectronics/phones/curvy-simplicity|0x58/0x5AC0/65546等等有人能帮忙吗?祝好 最佳答案 您可以像这样使用xquery:selectstuff(@data.query('for$iinrow/urlSegmentretur

xml - &...;在 RDF/XML 中——这是一个标准的 RDF 前缀表达式吗?

我下载了WordNet2.0全套。在RDF/XML文档wnfull.rdfs中,有如下元素使用,例如&wn20schema;AdverbSynset作为属性值(在需要URI的地方)。我知道#、url/和value:是常用的,但是这个&...;是什么>符号? 最佳答案 &wn20schema;是实体引用。XML文档应该包含或指向它的扩展,即类似于&wn20schema;将替换为...。引用资料:XML1.0:http://www.w3.org/TR/2008/REC-xml-20081126/#sec-physical-struct另

sql - 选择具有命名空间的列作为 XML

我需要从表中选择一些列作为XML,其中包含namespace以及其他列。例如,我有以下表格布局:IDC1X1C1X1C2X2C31A123查询应该返回的是:IDC1XmlData1A2A在哪里会是:12和会是:3我有一个很好的引用如何从thisSOquestion构建xml但我无法放入命名空间。如果可以,该怎么做?编辑:我使用以下查询试图获得所需的结果:选择1ID,'A'C1,1X1C1,2X1C2,3X2C3进入#t;withxmlnamespaces('w3.org/2001/XMLSchema'asxsd,'w3.org/2001/XMLSchema-instance'asxsi

sql - 将 XML 插入 SQL Server 表

鉴于此XML:我需要以这种格式将它插入到SQLServer中的表中:BatchIDBatchNameDocumentID1FredFlintstone2691FredFlintstone61FredFlintstone2992BarneyRubble2692BarneyRubble6此SQL:SELECTXTbl.XCol.value('./@BatchID','int')ASBatchID,XTbl.XCol.value('./@BatchName','varchar(100)')ASBatchName,XTbl.XCol.value('DocCollection[1]/Docume

xml - HXT——什么是 "deep"?

我花了很多时间来弄清楚如何使用HXT。我一直反对使用deep的示例。deep有什么作用?例如,thiscode具有以下内容:atTagtag=deep(isElem>>>hasNametag)Anotherexample:--case-insensitivetagmatchingatTagCasetag=deep(isElem>>>hasNameWith((==tag').upper.localPart))wheretag'=uppertagupper=maptoUpper 最佳答案 http://hackage.haskell.o