SELECT * FROM tbiz_ProjectRelation 目标统计每个项目有几条申请记录 Step1 SELECT ProjectID , RelationIDs , , '') FROM tbiz_ProjectRelation t1 Step2 SELECT ProjectID , RelationIDs , , '') FROM tbiz_ProjectRelation t1 GROUP BY ProjectID Step3 SELECT ProjectID , Relatio…
有两个导数据的需求,1.一张表里面每一个订单号可能对应多条数据,每个单号返回时间最早的那条. 2.根据条件查询某个字段并按照逗号,合并在一起. 表类似结构如下: 第一条sql:select c.Id,c.OrderNum, c.CreateTime FROM (select t.*,row_number() over(partition by t.OrderNum order by t.CreateTime ) rn  from Payinfo t WHERE t.OrderNum IN('20…
sql多行合并成一行 sql server SELECT [activityId], --STUFF( (SELECT ',' + Cast(A.phone AS varchar) FROM aaa A WHERE A.activityId=B.activityId FOR XML PATH('')) --,1,1,'') AS phonesFROM aaa BGROUP BY [activityId] mysql SELECTactivityId, group_concat(DISTINCT…
把自己点点滴滴的学习记录下来!!!! 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(TBJTXXCE)用来存放就诊患者信息,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM TBJTXXCE  FOR XML PATH 由此可见FOR XML PATH 可以将查询结果根据行输出成XML各式! 那么,如何改变XML行节点的名称呢?代码如下: SELECT * FROM TB…
select 字段1, [val]=( select 字段2 +',' from 表名 as b where b.字段1 = a.字段1  for xml path('')) from 表名 as a group by a.字段1…
--SELECT ff= stuff((select ','+cast(WorkOrderNo as varchar)-- FROM dbo.TB_WorkOrder c -- where tpl.ProjectID=c.ProjectID -- WHERE c.WorkOrderType=1-- for xml path('')),1,1,'')…
select stuff((select ',' + CONVERT(VARCHAR(50),id)+'' from tab_menu  group by id for xml  path('')),1,1,'')…
原始数据: 期望数据: IF OBJECT_ID('temp_20170701','u') IS NOT NULL DROP TABLE temp_20170701 CREATE TABLE temp_20170701 ( ID ,), NAME ), Subjectname ), Score INT ) INSERT dbo.temp_20170701( Name, subjectname, Score ) ' UNION ' UNION ' UNION ' UNION ' UNION ' U…
SELECT 字段=(SELECT b.合并字段+',' FROM 表一 AS b WHERE b.相同条件=a.相同条件 FOR XML PATH('')) FROM 表一 AS a DECLARE @temp TABLE (caccount VARCHAR(50), icaccount VARCHAR(50))INSERT INTO @tempSELECT a.caccount,b.caccount AS icaccount FROM op_client_main_caccount aLEF…
  在sql的查询中我们会遇到查询的结果比如这样的: 查询这张表的sql语句: select r.ROLE_NAME,u.USERID,u.USERNAME,u.TrueName from BASE_USERINFOR u left join BASE_USERROLE ur on u.USERID=ur.USER_ID left join BASE_ROLEINFOR r on r.ROLE_ID=ur.ROLE_ID 就拿钱三行来说就一个ROLE_NAME不一样其他的列的数值都是一样的难道我…