接下来,让我们先看看示例代码:
样品
昨天,我遇到了SQL Server的一个问题:我需要编写一个存储过程来
处理多个表中的数据。最后,问题是我想把一列的多行拼接成一行,例如,表中有两列数据。
类别
名称
AAA
企业1
AAA
企业2
AAA
企业3
血脑屏障
企业4
血脑屏障
企业5
我想把这个表格
转换成以下格式:
类别
名称
AAA
企业1家,企业2家,企业3家
血脑屏障
企业4,企业5
开始很头痛(当然不会没有这种感觉,它必须是一个头痛啊(* ^ __ ^ *)),从网上找信息,是要找到一个简单方便的
方法。现在,总结一下,供大家
学习。
原来的表名是table_a,和实现代码如下:
选择
类别,
名称=(
(东西
(选择',' +
名字从table_a类别= A类XML
路径('')),
1,
1,
'
)
)
从table_a作为一组类别
在这里,我们使用SQL Server 2005版本后添加的内容和XML路径。首先,让我们来讨论SQL在上述句子中的
作用。然后我们将
详细解释这两个用法的用法。
复制代码代码如下所示:
对于XML路径()
这个句子以XML的形式
显示。
复制代码代码如下所示:
东西((选择,+ ep_name从ep_detail哪里ep_classes = a.ep_classes XML路径()),1, 1,)
这是第一次
删除拼接的内容。
的东西:
1、
影响 东西(
参数,字符,长度,param2)
从startIndex(所有1的SQL,而不是0)在参数,删除字符长度和param2代替删除字符。
2。参数
参数:字符数据的表达。一个参数可以是常量、变量、字符或二进制数据列的列。
指数:一个整数值,指定插入和删除的起始
位置。如果startIndex和长度是负的,则返回空字符串。如果指数大于参数,空字符串是returned.startindex可以bigint型。
长度:一个整数,指定要删除的字符数。如果长度比参数,在参数的最后一个字符被删除最多。长度可以是bigint型。
param2,返回
类型。如果参数是一个
支持的字符数据类型,字符数据返回。如果参数是一个支持二进制数据类型、二进制数据返回。
样品
选择的东西('abcdefg,1,0,'1234 ')--结果是'1234abcdefg
选择的东西('abcdefg,1,1,'1234 ')--结果是'1234bcdefg
选择的东西('abcdefg,2,1,'1234 ')--结果is'a1234cdefg
选择的东西('abcdefg,2,2,'1234 ')--结果is'a1234defg
XML路径
对于XML路径,有些人可能知道有些人可能不知道,事实上,它是以XML形式显示
查询结果集。有了它,我们可以简化我们的查询语句,并实现我们可能需要使用
函数存储过程的一些
工作。
假如有,学生选课表(stu_courses)存储。
接下来,我们将查看XML路径的查询结果,如下所示:
复制代码代码如下所示:
选择stu_name,stu_course从stu_courses XML路径;
结果如下:
可以看出,对于XML路径,可以将行的查询结果输出到XML。