数据库学习:for xml path】的更多相关文章

一.开发环境 数据库:SQLServer2012 二.语法简介 for xml path它以xml形式展示查询的结果集 三.语法介绍 现在数据库中有一张表 1.基本语法 select * from Blog_UserInfo for xml path 运行结果: <row> <ID>1</ID> <Introduce>大家好,我叫金某</Introduce> <RealName>金某</RealName> </row…
最近看到太多人问这种问题   自己也不太了解  就在网上学习学习 自己测试一番 CREATE TABLE test0621 (id INT,NAME NVARCHAR(max)) INSERT test0621 VALUES(1,'aa'),(1,'bb'),(1,'cc')INSERT test0621 VALUES(2,'星期一'),(2,'星期二'),(2,'星期三') DROP TABLE test0621 SELECT * FROM test0621 SELECT * FROM tes…
写在前面 之前做了个微信端顾客扫码评价员工的功能,除了打分数,还可以打标签. 需要统计分数和统计各个员工每种标签被点击的次数. 后来加了个要求,需要查看客户对某个员工一次服务所打出的标签组合.  在不修改表设计的前提下,解决这个问题! 实际开发时数据表设计需要考虑的东西比较多,而这篇分享主要是写函数的应用,为了方便看,所以表设计简化了,下面两个表的设计也都是简化过的.    数据表设计如下(只列出部分要用到的字段):    测试数据格式如下:           备注说明: (1)tagIDs的…
--> 测试数据:#tbIF OBJECT_ID('TEMPDB.DBO.#tb') IS NOT NULL    DROP TABLE #tbGO CREATE TABLE #tb       (        [id] INT IDENTITY PRIMARY KEY ,        [name] VARCHAR(4),        [type] VARCHAR(10)       )INSERT  #tb        SELECT  '彪' , '流氓'        UNION A…
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“-”,“_”等看到这个要求的时候,自然而然地想到了正则表达式.于是就有了下面的表达式(写的比较龊): ^([A-Za-z0-9._()&'\- ]|[aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀểỂễỄếẾệỆfFgGhHiIì…
由于项目的原因,需要将一些记录分类汇总,但还要列出相关的明细,这样的需求我还是第一次遇到,蛋疼了,还是请求一下度娘吧.搜索一番还是有结果,请看以下例子: 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 *…
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的时才能得心应手.如果对JDBC基础不太清楚,或…
前言:本人SQL技术很烂,然后工作时间也不久,许多东西都还在学习中,说的不好的地方尽请谅解. 首先跟大家说一下我今天遇到的问题吧. 查出的数据有三列,第一列存放的是32位的GUID,Res_Name存放的是一个物资类型.Res_Data存放的是部门的GUID.我现在需要得到的数据是这样的. 首先大家可以看到.第一张图的Res_Data中有多个部门的GUID,中间用逗号隔开的. 我当时想到的愚蠢的办法就是 ), ), @start int, @limit int, @totalCount int…
最近公司项目需要在数据库中操作XML,因此系统的学习了一下 一.openxml的格式 OPENXML( idoc int [ in] , XPathnvarchar [ in ] , [ flags byte [ in ] ] )    [ WITH ( SchemaDeclaration | TableName ) ] 参数含义 idoc XML 文档的内部表式形式的文档句柄. 通过调用sp_xml_preparedocument  创建 XML 文档的内部表式形式. XPath 模式,用来标…
for xml path 如何将字段作为xml的属性: 可在查询时 别名用 as '@..' 如'@value' 如下实例: SELECT A.GiftSetGUID AS '@value',A.GiftSetName AS '@text' FROM  (  AS num ,)) AS GiftSetGUID ,sgs.GiftSetName FROM s_GiftSet sgs  INNER JOIN p_room pr ON pr.ProjGUID = sgs.ProjGUID   INNE…
一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack4.说明:创建新表create t…
我们通常需要获取一个多行的某个字段拼出的字符串,我们可以使用for xml path进行处理:下面将介绍for xml path的具体用法: 创建测试表&插入测试数据 在数据库中新增测试表 CREATE TABLE MyTest( UserName ), Email ) ) 插入测试数据 INSERT INTO MyTest ( UserName, Email ) VALUES ( '张三', -- UserName - varchar(50) 'zhangsan@163.com' -- Ema…
DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧 db2pd -d 库名 -locks和db2pd -d 库名 -wlocks window环境下在db2cmd下,使用db2 get snapshot for locks on dbname -查看数据库管理器级别快照信息     db2 get snapshot for dbm -查看数据库级别快照信息     db2 get snapshot for…
在一个医药行业的系统中需要根据患者的接触记录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…
SQL 列转行,即多行合并成一条   需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district] [nvarchar](255) NULL,[town] [nvarchar](255) NULL); insert into t2 values(1,'淮上区','曹老集镇'); insert into t2 values(2,'淮上区','淮滨街道'); insert into t2 valu…
示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便的方法吧,现在大体总结一下…
有这么一个表 )) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') , 'ddd') , 'fff')                                                                                                                                 需求:把id为3所以数据转为1行.以|分隔 1.把id为3的数据转  xml   xml   sele…
SQL Server中有提供一个FOR XML PATH的子句(不知道能不能叫函数),用来将查询结果行输出成XML格式,我们可以通过这个语法做一些变通实现一些特定的功能,比如说行转列.要会变通的话,当然首先是要知道FOR XML PATH的语法. FOR XML PATH的简单语法 假设有一个hobby表(爱好),表中有两个字段,一个是hobbyID(爱好id),一个是hName(爱好名称). 这样,我们执行一条最简单的带FOR XML PATH子句的SQL语句,看看查询出来的结果. SELEC…
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自定…
SQL Server2005提供了一个新查询语法——For XML PATH(''),这个语法有什么用呢?想象一下这样一个查询需求:有两个表,班级表A.学生表B,要查询一个班级里有哪些学生?针对这个需求,方法有很多.举例一下两种:1.Join连接:2.For XML PATH(''). 为了大家方便体验效果,附上创建数据库的代码: --班级表 create table T_Class ( CNo int primary key not null identity,--班级编号 CName nva…
在工作中难免会遇到数据库中数据要进行拼接的问题,字符串拼接可以是用SQL的拼接也可以使用C#的拼接,本次说的是使用SQL进行拼接. 首先插入测试语句: --测试语句,准备创建表的语句:如下 CREATE TABLE dbo.test3 ( id int IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED, typeid nvarchar(50) NULL, typeName nvarchar(50) NULL ); CREATE UNIQUE CLUS…
把自己点点滴滴的学习记录下来!!!! 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(TBJTXXCE)用来存放就诊患者信息,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM TBJTXXCE  FOR XML PATH 由此可见FOR XML PATH 可以将查询结果根据行输出成XML各式! 那么,如何改变XML行节点的名称呢?代码如下: SELECT * FROM TB…
示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便的方法吧,现在大体总结一下…
达梦数据库学习(一.linux操作系统安装及数据库安装) 环境介绍: 使用VM12+中标麒麟V7.0操作系统+达梦8数据库 一.linux系统搭建 本部分没有需要着重介绍,注意安装时基本环境选择"带GUI的服务器". 二.数据库安装 1.环境检查 1)内核版本检查: #uname -r                  #查看系统内核版本 3.10.0-957.el7.x86_64 注意DM8数据库支持2.6以上内核 #ulimit -a        #查看系统相关参数 -- ope…
有时为避免循环操作数据库.列表展示等一些原因需要将数据及关联数据批量加载进行集中处理,一种解决办法可以使用FOR XML PATH将多行数据合并成一列,达到字段拼接的效果.例如有两个表, 部门表T_Dept: 员工表T_Emp: 需要查询每个部门下的员工姓名,查询语句: 1 SELECT ROW_NUMBER() OVER (ORDER BY DeptId) AS Row, DeptName 2 , LEFT(A.EmpName, LEN(A.EmpName) - 1) AS EmpName 3…
http://www.myexception.cn/linq/1288046.html Entity framewok 怎么实现多条记录作为一条取出, for xml path怎么实现News表:ID  Title 1  'ABCDE'2  'ABC' Category表:ID  CategoryName1    '类型1' 2    '类型2'3    '类型3' CatNew表:ID  NewsID  CategoryID1     1       12     1       23    …
SQL注入这块不想细聊了,相信很多朋友都听到耳朵长茧,不外乎是提交含有SQL操作语句的信息给后端,后端如果没有做好过滤就执行该语句,攻击者自然可以随意操纵该站点的数据库. 比如有一个图书馆站点book.com,你点进一本书的详情页面,其url是这样的: book.com/book?id=100 说明这本书在数据库中的键值是100,后端收到url参数后就执行了数据库查询操作: select * from booktable where id='100' 那么如果我们把url更改为 book.com…
我也是才知道这种用法的,刚好又用到写个简单的例子. select Name from tc_order_detail 如下表,现在要将做到将name每个以逗号连接 declare @df nvarchar(max) select @df = stuff((select ',' + Name from tc_order_detail for XML path('')) , 1 , 1 , '') select @df 就变成下图中样子了,这应该也是很长用的吧 不懂的可以楼下回复,记得点赞!!!…
=================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我 勿用于学术性引用. 勿用于商业出版.商业印刷.商业引用以及其他商业用途. 本文不定期修正完善. 本文链接:http://www.cnblogs.com/wlsandwho/p/5039358.html 耻辱墙:http://www.cnblo…