最近遇到点棘手的问题,大致如下:

  1、数据局格式:

企业名称 排口名称 监测时间  监测因子

a     b     c     pH值

a     b     c     氨氮

a     b     c     化学需氧量(COD)

企业名称、排口名称数据都一样,需求是把企业名称列相同的数据显示一行,开始觉得很简单,做着做着觉得拼接数据太烦,然后就想能不能用sql操作。

纠结了小半天没有写出一个适合的sql,然后去百度了(谷歌最近大姨妈了,上不去,也没研究咋回事),然后找到了N多种方案,最后找到一个方案。写sql函数,

sql函数的语法 大致 这样(有问题的话,麻烦指出来,好改正......)

if exists (select * from dbo.sysobjects where id = object_id(N'dbo.函数名称') and xtype in (N'FN', N'IF', N'TF'))--判断该函数是否存在
drop function [dbo].函数名称
GO
create FUNCTION dbo.函数名称()
RETURNS VARCHAR(500) --必须,类型可以集资定
AS
BEGIN
  DECLARE @SQL NVARCHAR(500)
SELECT @SQL = (ISNULL(@SQL+',','') + 需要合并的列名) FROM 表名 --ISNULL 必须包含两个参数
group by 分组的列名 --可选
RETURN @SQL  --最后一条必须是返回语句
END
go
select distinct dbo.函数名称(),列名 from 表名

然后顺利解决。

之前用上面的方法,发现有点不够简洁,根据博友的提示,又重新整合了一个。

SELECT B.StuName ,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
SELECT StuName,
(SELECT habbyName+',' FROM Habby
WHERE A.habbyId like'%'+cast(Id as nvarchar(5))+'%'
FOR XML PATH('')) AS StuList
FROM Students A
GROUP BY StuName,A.habbyId
) B

这个做法不错。

SQL For Xml的更多相关文章

  1. Sql Server xml 类型字段的增删改查

    1.定义表结构 在MSSM中新建数据库表CommunicateItem,定义其中一个字段ItemContentXml 为xml类型 2.编辑表数据,新增一行,发现xml类型不能通过设计器录入数据. 需 ...

  2. SQL SERVER XML 学习总结

    SQL  SERVER  XML  学习总结 最新的项目任务要做一个数据同步的功能,这些天都在做技术准备,主要是用到了微软的Service Broker技术,在熟悉使用该技术的同时,又用到了Sql s ...

  3. 转载---SQL Server XML基础学习之<5>--XQuery(query)

    本章写一些SQL Server XML的一些XQuery基础语法,主要讲的query查询语法 T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. XQuery 基于现有的 XPa ...

  4. sql分组合并字段重复项sql for xml path

    -------------------------(情景描述) 在我们处理数据时,可能会碰到这种情景: Id                Name 1                  a,b 2  ...

  5. SQL Server XML数据解析

    --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <In ...

  6. SQL Server XML 查询

    [参考1] 18个小实例入门SQLServer XML查询 [参考2] 转载---SQL Server XML基础学习之<5>--XQuery(query)

  7. Oracle使用Sql把XML解析成表(Table)的方法

    SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0&qu ...

  8. sql for xml path 处理

    1.将下列结果集 做成 aa   语文,数学 bb    英语,语文 这种格式 使用 for xml  path  记得去重复 WITH cte AS(SELECT stu.studentname,c ...

  9. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  10. sql for xml 还有一种写法(採用 tag 与 union all,简洁易懂)

    sql for xml 还有一种写法(採用 tag 与 union all,简洁易懂) 測试环境:sql 08, 08 R2, 2010,  2012, 2014 等 declare @agent t ...

随机推荐

  1. the private key for is not installed on this mac

    the private key for is not installed on this mac 如果提交 时出现这个问题, 有可能是 keychain重复了, 1:要去keychain中把旧的删除, ...

  2. HDOJ -- 1015

    1.DFS #include<cmath> #include<cstdio> #include<cstdlib> #include<string> #i ...

  3. python多进程的理解 multiprocessing Process join run

    最近看了下多进程. 一种接近底层的实现方法是使用 os.fork()方法,fork出子进程.但是这样做事有局限性的.比如windows的os模块里面没有 fork() 方法. windows:.lin ...

  4. CPLEX IDE 菜单栏语言设置( 中文 英文 韩文 等多国语言 设置)

    http://www-01.ibm.com/support/docview.wss?uid=swg21573032 Technote (FAQ) Question How to change the ...

  5. JavaScript高级程序设计43.pdf

    事件类型 Web浏览器中有很多事件类型,“DOM3级事件”规定了以下几类事件 UI事件(用户界面),当用户与页面上的元素交互时触发: 焦点事件,当元素获得或失去焦点时触发 鼠标事件,当用户通过鼠标在页 ...

  6. Bzoj 1036: [ZJOI2008]树的统计Count 树链剖分,LCT

    1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 11102  Solved: 4490[Submit ...

  7. hdoj 1827 Summer Holiday【强连通分量&&缩点】

    Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. CSS围住浮动元素的三种方法

    浮动元素脱离了文档流,其父元素看不到它了,因而不会包围它.浮动会“扩散”到下一个清除浮动的元素处.这会引起不想要的页面布局效果. 清除浮动的方法有三种: 1.父元素overflow:hidden 2. ...

  9. 记录:Ubuntu下配置Eclipse

    >>下载Eclipse. 下载链接:http://www.eclipse.org/downloads/ 我选择了64bit的版本 >>安装Eclipse. 解压文件: tar ...

  10. linux运维安全工具集合[持续更新中..]

    lynis 安全漏洞检测工具    https://cisofy.com/download/lynis/    https://cisofy.com/files/lynis-2.2.0.tar.gz ...