首先看一下数据结构表 IF(OBJECT_ID('tempdb..#tProduct')IS NOT NULL) DROP TABLE #tProduct SELECT * INTO #tProduct FROM( AS ProductID,'aaa'AS ProductName UNION AS ProductID,'bbb'AS ProductName UNION AS ProductID,'ccc'AS ProductName UNION AS ProductID,'xxx'AS Prod
参考: FOR XML PATH:http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html cross apply:http://www.cnblogs.com/Leo_wl/archive/2013/04/02/2997012.html 应用: FOR XML PATH,可以在group by 语句中,合并非group字段,例如:查询每个学生对应的课程(多个课程使用逗号隔开) cross apply,可以查询A表的同时
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM @hobby FO
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果
由于项目的原因,需要将一些记录分类汇总,但还要列出相关的明细,这样的需求我还是第一次遇到,蛋疼了,还是请求一下度娘吧.搜索一番还是有结果,请看以下例子: create table tb ([id] int,[name] varchar(2))insert into tbselect 1,'aa' union allselect 2,'bb' union allselect 1,'cc' union allselect 3,'dd' union allselect 2,'ee' select *
在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样 --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT_ID ('dbo.TEST') IS NOT NULL DROP TABLE dbo.TEST GO CREATE TABLE dbo.TEST ( ID ,) NOT NULL, cid INT,--接触记录号 REMARK ), CONTACTTYPE ), DESCRIBE ), ADDDA
create table tb ([id] )) insert into tb ,'aa' union all ,'bb' union all ,'cc' union all ,'dd' union all ,'ee' select * from tb --查询 select id, name=stuff((,,'') from tb t group by id 方法二: CREATE FUNCTION GET_STRING(@ID INT) RETURNS VARCHAR() AS BEGIN
/*sqlserver*/ select Id,AId,(SELECT IMEI+',' FROM Device as s WHERE s.Id=c.Id For XML Path('')) AS IMEI from Device as c /*mysql*/ select AId,(SELECT group_concat(IMEI) FROM Device as s WHERE s.AId=c.AId ) AS IMEI from AccountSettings as c
FOR XML PATH 是sqlserver数据库的语法,能将查询出的数据转换成xml格式的数据. 首先,我们来看一个正常的查询: SELECT TOP 2 id, name,crDate FROM sys.sysobjects 查询出的是表格形式数据, 如果改成xml格式,则如下 SELECT TOP 2 id, name,crDate FROM sys.sysobjects FOR XML PATH('') 查询xml格式的数据.并且都是拼接到一个字段中. 我们还可以给xml的node自定