随笔分类 - XQuery
摘要:原本把一些静态数据永久存储于数据中的,但是在angularjs或是Vue.js显示时,却是遇上base64String转换的问题。 可以尝试在静态数据上传时,不要存储为Image或是Vbinary等类型的数据,而是直接把数据流转换为Base64String之后,再存储于数据库中。 但是,如果已经有数
阅读全文
摘要:在开发SQL Server语序中,可能需要这样一个要求,把表中某一列的所有值转换为使用逗号分隔的字符串去呈现出来。 举个例子: IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL BEGIN DROP TABLE #tempTable END CREATE
阅读全文
摘要:“7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成为Visual Studio最新DNA。在智能移动端App开发,支持无论是面向何种智能设备,无论是支...
阅读全文
摘要:问题是这样的。从订阅表中SELECT某一个用户所有订阅的目录,然后可以绑定至前台显示给用户,让用户知道自己有哪些订阅和哪些目录没有订阅。如下表[dbo].[SubScription]:需要SELECT用户ID为15的所有订阅目录。如最终结果:Insus.NET是在SQL Server 2012结合XML的FOR XML PATH()来实现。参考:View Code SELECT[UsersId],[SubscriptionCataLog]=STUFF((SELECT','+CAST([SubscriptionCatalog_nbr]ASNVARCHAR(MAX))FROM[db
阅读全文
摘要:理解此函数,可以先看它的语法:fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?返回 xs:boolean 类型的值,以指明 $arg1 值是否包含 $arg2 所指定的字符串值。实例演示说明,可以参考前一篇:http://www.cnblogs.com/insus/archive/2012/03/09/2388316.html这篇只能SELECT到与变理值相同的节点。如果我们想SELECT相似值,虽然可以用谓词LIKE,如果这篇:http://www.cnblogs.com/insus/archive/2
阅读全文
摘要:sql:variable()函数,在XQuery表达式内包含 SQL 关系值的变量。如下面xml:DECLARE@xmlXML='<Devs><langname="VB.NET"/><langname="C#.NET"/><langname="Java"/><langname="Javascript"/><langname="ASP.NET"/></Devs>'现在我们定义一个变量:DECLARE
阅读全文
摘要:XML有很多函数,如upper-case可以把某些值显示或改写为大写。比如下面这个xml类型变量中,第5行与第6行属性值是小写,现想把它显示来大写。1DECLARE@xmlXML='2<Devs>3<langname="VB.NET"/>4<langname="C#.NET"/>5<langname="Java"/>6<langname="Javascript"/>7<langname="ASP.NET"/>8<
阅读全文
摘要:本演示,是把这篇:http://www.cnblogs.com/insus/archive/2012/02/29/2374826.html改为动态的T-SQL。宣告三个变量,第一个为@nodes :DECLARE@nodesNVARCHAR(MAX)='''/Devs/lang/@name'''第二个为@value:DECLARE@valueNVARCHAR(MAX)='''(.)'',''NVARCHAR(MAX)'''第三个为@sql,其实前两个变量也是为此变量所
阅读全文
摘要:本实例是演示SQL查询中XQuery使用COUNT函数。DECLARE@xmlXML='<Devs><langname="VB.NET"/><langname="C#.NET"/><langname="Java"/><langname="Javascript"/><langname="ASP.NET"/></Devs>'SELECTCOUNT(*)AS[Totals]FROM@xml.nodes(
阅读全文
摘要:本次演示,学会了元素本身(.)以及LIKE的操作。宣告一个xml的变量@xml并赋值给它。DECLARE@xmlXML='<Devs><langname="VB.NET"/><langname="C#.NET"/><langname="Java"/><langname="Javascript"/><langname="ASP.NET"/></Devs>'然后,我们可以使用LIKE操作,过滤到我们需
阅读全文
摘要:控制使用FLOWR替代XQuery路径表达式。FLOWR是For,Let,Where,Order by, Return的谓词首字母缩写。下面演示数据表,来自http://www.cnblogs.com/insus/archive/2012/02/26/2368323.html的[dbo].[tbDevLanguage]SELECT[ID],[languages].query('for$lin/Languages/languageorderby$l/@namereturn($l)')AS[language]FROM[dbo].[tbDevLanguage]for是XPath
阅读全文
摘要:在前一篇http://www.cnblogs.com/insus/archive/2012/02/25/2367857.html xml.modify()可以看到所在演示均是为变量的xml数据类型进行操作。Insus.NET想在此篇使用http://www.cnblogs.com/insus/archive/2012/02/25/2367701.html篇中创建的表[dbo].[tbDevLanguage]中的数据进行操作。也就是说以表的xml的数据类型进行演示。在演示之前,Insus.NET修改了此表,添加了一个主键字段,方便过滤记录时行更新。插入元素insert():UPDATE[dbo]
阅读全文
摘要:比如一串字符以某定义符号分隔,现我们需要以定义符号对这串字符进行拆分。可以使用XQuery的nodes()方法来实现。实现可参考到这篇:http://www.cnblogs.com/insus/archive/2012/02/25/2367743.html。不过Insus.NET把实现的方法写成一个自定义函数,在需要的地方调用即可。udf_StringSplit SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:Insus.NET--Createdat
阅读全文
摘要:现在Insus.NET来演示http://www.cnblogs.com/insus/archive/2012/02/24/2367323.html列表中最后一个函数xml.modify()。参考下表,xml.modify()函数有三个方法:函数方法说明xml.modify(insert)在使用的XML数据类型实例插入一个节点或节点的顺序。xml.modify(delete)删除指定的XQuery表达式的结果输出序列的零个或多个节点。xml.modify(replace)修改一个节点的值。首先来演示xml.modify(insert) ,为xml变量值插入一个元素<language na
阅读全文
摘要:这个演示,Insus.NET还是使用这篇的数据源,获取某一节点下元素所有属性值,并放在一个表中:http://www.cnblogs.com/insus/archive/2012/02/25/2367377.html把这个xml的数据转入一个表中。DECLARE@xmlXML='<Languages><languagename="VB.NET"/><languagename="C#"/><languagename="Java"/></Languages>'宣告
阅读全文
摘要:xml.query()函数,XQuery表达式可以返回xml一个单一的元素或是所有元素。我们继续使用上一篇所创建表[dbo].[tbDevLanguage] http://www.cnblogs.com/insus/archive/2012/02/25/2367668.html首先我们演示Query所有元素,注意一下查询节点,返回结果获取范围:SELECT[languages].query('/Languages')AS[language]FROM[dbo].[tbDevLanguage]SELECT[languages].query('/Languages/langu
阅读全文
摘要:上一篇是http://www.cnblogs.com/insus/archive/2012/02/25/2367377.html xml.exists()函数演示,而xml.value()函数是接受一个xQuery,并返回得到一个标量值。这里还是继续使用上一篇的数据。首先创建一个表:CREATETABLE[dbo].[tbDevLanguage]([languages]xml)把xml的数据Insert(插入)至刚才创建的表中:DECLARE@xmlXML='<Languages><languagename="VB.NET"/><lan
阅读全文
摘要:你可以看到前一篇http://www.cnblogs.com/insus/archive/2012/02/24/2367323.html XML的XQuery的五个操作方法中,有一个xml.exists()方法,现在Insus.NET作一些演示:宣告一个xml数据类型的变量,并赋值:DECLARE@xmlXML='<Languages><languagename="VB.NET"/><languagename="C#"/><languagename="Java"/></La
阅读全文
摘要:从SQL 2005开始支持了XML数据类型,并提供五个函数可操作。动作说明xml.exist()查询谓词用作判断,传入Xquery将返回三种结果0,1或NULL。0表示没有匹配的元素,1表示有一个匹配,而NULL表示没有查询XML数据。xml.value()接受一个XQuery作为输入并返回一个SQL Server的标量类型。xml.query()接受一个XQuery作为输入并返回输出XML数据类型的流。xml.nodes()接受一个XQuery作为输入并返回从XML文档中单一行集。从本质上讲,它将XML分成多个较小的XML结果。xml.modify()允许你插入,删除或修改节点或节点序列中的
阅读全文