关于for xml path('')

今天在项目中遇到一个问题,在综合查询的时候,需要把同一个表中,同一个人的某个属性加起来放在一个字段中,这时候需要for xml path(‘‘)

select * from t_Baseinfo bi
left join
(
  select DISTINCT b.PersonID,
     STUFF(
	(
	     select ‘,‘+ a.Features  from t_Special a where a.PersonID=b.PersonID and flag=1 for xml path(‘‘)
       ),1,1,‘‘) as features
     from t_Special b
)tfeatures on bi.ID=tfeatures.PersonID
  where Flag=1 and tfeatures.Features like ‘%眼%‘

其中,先使用  select ‘,‘+ a.Features from t_Special a for xml path(‘‘),把需要放在一个字段中的属性用‘,’拼接放在xml中,

人后用stuff截掉第一个‘,’,起别名 features,由于需要把表中同一personid显得字段防盗一个里  所以需要加上 where a.PersonID=b.PersonID  条件。这样他会根据b表中personid来取值。

参考资料:http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

关于for xml path('')

时间: 2024-08-04 22:16:32

关于for xml path('')的相关文章

灵活运用 SQL SERVER FOR XML PATH

FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主. 一.FOR XML PATH 简单介绍              那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM @hobby FO

SQL FOR XML PATH 和 Stuff 用法

sql stuff 用法 1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_expression , start , length ,character_expression ) 3.示例 以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串 SELECT STUFF('abcdef', 2, 3, 'ijklmn')GO 下面是结果集 a

行转列(FOR XML PATH)

SELECT (SELECT ac.ColName+',' FROM T1 AS ac FOR XML PATH('')) AS ColName, (SELECT ac.colTitle+',' FROM T1 AS ac FOR XML PATH('')) AS colTitle 行转列(FOR XML PATH),布布扣,bubuko.com

for xml path

在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据 示例:

使用for xml path 分组查询

SELECT OLevel, WorkOrgID, WorkOrgName, PlanNum, PlanFinishNum, PlanUnFinishNum, PlanCanceledNum, PlanChangedNum, OrtherNum, PlanTime, ActualTime, RIGHT(PlanIDs,LEN(PlanIDs)-1) AS PlanIDs FROM (SELECT ( CASE MIN(Parent) WHEN 'E13744A1-7E2C-42E8-8E7B-4

sql FOR XML PATH('')

alter function test() Returns nvarchar(max) As Begin Declare @avg nvarchar(max) Declare @str nvarchar(max) Set @str=( Select ','+yuanshidanhao from Aj_Jibenxinxi Where convert(nvarchar(max),id) in (1,2,6) FOR XML PATH('') ) Return @str End sql FOR XM

SqlServer——for xml path

for xml path 就是将 sql 查询出来的内容以XML的格式显示出来.参考网站MSDN:将 PATH 模式与 FOR XML 一起使用. 先创建测试用的表格: create table SZQCSBJ ( 省 varchar(100), 市 varchar(100), 县 varchar(100) ); insert into SZQCSBJ values('山东' ,'潍坊' ,'安丘' ); insert into SZQCSBJ values('山东' ,'潍坊','寿光' );

初识FOR XML PATH

今天公司升级考试(我打酱油的熟悉下),结果第一题就熄火了,大概是这样的: 一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好 要求是查询学生表,显示所有学生的爱好的结果集 我在那搞了半天没搞出来,过后问了下同事,他说用FOR XML PATH,搞了下出来了 SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM ( SELECT sName, (SELEC

SQL SERVER FOR XML PATH

转自:王波洋 (PS:对当前的博客进行了阅读,感觉不错,本来计划自己写一下,后来实在是时间不充裕并且博主写的不错,故转过来并稍微修正下) FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作. 一.FOR XML PATH 简单介绍           那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下:

使用 SQL的 for xml path来进行字符串拼接

本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3:简单介绍FOR XML PATH 4:解答问题 1.构造初始数据 举出一个经典的学生课程例子,共有学生.课程与学生课程三张表. 表1:Student student_id student_name 1 张三 2 李四 3 王五 表2:Course course_id course_name 1 语言