sqlserverforxml
❶ sql Server2000将一列数据拼接成字符串可以用STUFF FOR XML PATH()么
SQL Server2000是不支持FOR XML PATH()的
declare @s varchar(8000)
set @s = ''
select @s = @s + 字段 + ',' from 表名
set @s = stuff(@s,len(@s),1,'')
SELECT @s
❷ sqlserver2008关联的两张表如何生成xml
用for xml语法可以直接生成xml.
❸ sql语句 在sqlserver中运行可以 在java中报错除非另外还指定了 top 或 for xml,否
应该一句话就可以了
select top 100 字段1 from 表1 where 字段1 like '2%' order by 字段2
或者
SELECT TOP 100 a.字段1 FROM (select * from 表1 where 字段1 like '2%'order by 字段2) as a order by a.字段1
❹ 如何用SQL server 2008做FOR XML PATH
mysql中有group_concat()可以合并多行内容
select AID,ANAME,(
select group_concat(VALUE) from B where B.AID=A.AID
) as AVALUE from A;
❺ sqlserver for xml问题
createtableT
(
sellerIDint,
rolevarchar(10)
)
insertintoTvalues(1,'管理员')
insertintoTvalues(2,'销售')
insertintoTvalues(2,'库存')
insertintoTvalues(3,'销售')
insertintoTvalues(3,'发货')
SelectsellerID,stuff((
Select','+roleFromTWheresellerID=S.sellerID
ForXMLpath('')),1,1,'')AsroleList
FromTS
GroupbysellerID

❻ 如何对SQL Server中的XML数据进行insert,update,delete
首先定义一段xml 数据:
declare@xmldataxmlset@xmldata='<bookstore><bookcategory="COOKING"><titlelang="en">EverydayItalian</title><author>GiadaDeLaurentiis</author><year>2005</year><price>30.00</price></book><bookcategory="[email protected]('bookstore[1]/book[@category="CHILDREN"][1]/title[1]/@lang','varchar(2)')"><titlelang="jp">HarryPotter</title><author>JK.Rowling</author><year>2005</year><price>29.99</price></book><bookcategory="WEB"><titlelang="en">XQueryKickStart</title><author>JamesMcGovern</author><author>PerBothner</author><author>KurtCagle</author><author>JamesLinn</author><author>VaidyanathanNagarajan</author><year>2003</year><price>49.99</price></book><bookcategory="WEB"><titlelang="cn">LearningXML</title><author>ErikT.Ray</author><year>2003</year><price>39.95</price></book></bookstore>
1、查询:@xml . query(xpath) xpath 是匹配方式字符串。必须是完整的,非拼接而成的字符串。'.' 代表本身 '/'代表子节点 '//'代表后代 '*'代表任何
查询bookstore下所有属性category="WEB"的book节点 :
select @xmldata . query ('./bookstore/book[@category="WEB"]')
查询最后1个book 节点:
select @xmldata . query ('./bookstore/book[last()]')
中括号中可以是数字,表示第几个节点。注意:这里的数字1表示第一个节点,尔非0表示第一个。也可以是这样:[position()<=2] 表示前2个节点
查询所有存在lang属性的节点:(查询所有后代节点中包含属性lang的节点)
select @xmldata . query ('//*[@lang]')
同时,查询可以包含条件: 查询所有price节点值大于30的price节点
select @xmldata . query ('//price[text() > 30]')
或则更复杂的条件: 查询所有的book节点,条件是其子节点的title节点的lang属性值为"en" 并且 year节点的值为"2003"
select @xmldata . query ('//book[./title[@lang="en"] and ./year[text() = "2003"]]')
有时查询字符串可能包含一些参数:如下代码:我们可能期望通过这样的语句查询所有属性category="WEB"的book节点
declare @parm varchar(3)
set @parm = "WEB"
select @xmldata . query ('//book[@category = "'+@parm+'"]')
但是,这样是错误的。会返回这样的错误:xml 数据类型方法 "query" 的参数 1 必须是字符串文字。
通过:sql:variable("@parm")就能解决这样的问题:
select@xmldata. query ('//book[@category = sql:variable("@parm")]')
另外还存在这样的查询方式:
select@xmldata. query ('for $b in bookstore/book where $b/year[text() = "2003"] return ($b)')
select@xmldata. query ('for $b in bookstore/book where $b/author order by $b/price[1] descending return ($b)')
注意:第二行代码 order by 语句后必须是精确的列,所以要使用[1]。如若不然,如果$b下存在多个price节点,这样的查询则不是我们所需要的
除 @xml . query(xpath) 方法外还存在
. exist(xpath) 方法 :
返回0或1,表示xpath所选择的内容是否存在
. value(xpath,type):
返回xpath所选择内容的值,在这里需要制定返回值的类型
为了使XML查询更加高效,我们可以在XML数据上创建索引,具体方法暂不记录。
2、修改:@xml . modify(insert) | .modify(replace) | .modify(delete)
将一段xml片段插入到制定节点后(前)after | before
set @xmldata . modify('insert <test>Hello</test> after (//book)[last()]')
修改掉price="39.95"的price节点的值为"50.00"
set @xmldata . modify('replace value of (/bookstore/book/price[text()="39.95"]/text())[1] with "50.00"')
删除所有test节点
set @xmldata . modify('delete //test')
添加属性:
set @xmldata .modify ('insert attribute testatt{"50"} into (/bookstore/book)[1]')
修改属性:
set @xmldata .modify('replace value of (/bookstore/book/@testatt)[1] with "80"')
❼ FOR XML PATH('')),1,1,'')这是什么意思
在SQLServer中,FORXMLPATH语句用于根据查询的数量生成XML数据。PATH()括号中的参数是控制节点的名称。
for语句使问题C语言提供的答案更加强大,并使用了更加广泛和专门化的循环语句,其一般形式为:for表达式1.2.3。
SQL(结构化查询语言)是一种数据库查询和编程语言,用于访问数据、查询、更新和管理关系数据库系统。SQL是一种高级的非过程性编程语言,允许用户使用高级数据结构。
它不要求用户指定数据的存储方法,也不要求用户知道数据的具体存储方法,因此具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入和管理的接口。

(7)sqlserverforxml扩展阅读:
SQL语言由四个部分组成:
数据定义语言(DDL),如创建、删除、修改等。
数据操作语言(DML),如插入、更新、删除语句。
数据查询语言,如SELECT语句。
数据控制语言,如授予、撤销、提交、回滚等。
SQL语言包括两大类编程语言:数据定义语言(DDL)和数据操作语言(DML)。
以下是其中的两个:
编辑本节DDL
DDL语句通常包括每个对象的CREATE、ALTER和DROP命令。例如,像CREATETABLE、ALTERTABLE和DROPTABLE这样的语句可以用来创建新表、修改它们的属性(比如添加或删除行)删除表等等。
CREATETABLE语句
使用DDL在MyDB数据库中创建一个名为Customer_Data的示例表,我们将在本章后面的示例中使用这个表,如前所述,CREATETABLE语句可用于创建表,示例表定义为四行。
