sqlserver中怎么将一列数据拼接成一个字符串

 我来答
爱我淘气8
高粉答主

2018-04-12 · 醉心答题,欢迎关注
知道小有建树答主
回答量:183
采纳率:95%
帮助的人:3万
展开全部

1、自定义函数

2、使用connect by子语句的SQL,用sys_connect_by_path函数连接

3、自定义聚合函数

SQL SERVER日志清除的使用方法

1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存。

2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定。

3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。

Koftt1123
推荐于2018-02-27 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:100%
帮助的人:8.3万
展开全部
尚子素说的没错。
这种问题,我平常除了喜欢用动态sql写法,下来就是喜欢这个写法啦,
所以补充一下尚子素的说明:

首先,确定你要合并的列
SELECT user_name FROM dbo.users

其次,将其以xml格式输出
SELECT user_name FROM dbo.users FOR XML PATH

然后,去除包裹的节点名称
SELECT ',' +user_name FROM dbo.users FOR XML PATH('')
(这里,','+user_name以后变成了无列名状态,','可以填充具体的分隔符,PATH('')是自定义外层节点名称)

下来,去掉最终结果首位的分隔符,以空字符替代(PS:这样不用数长度)
SELECT STUFF((SELECT ','+user_name FROM dbo.users FOR XML PATH('')),1,1,'')
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longrenyingdc8ecb1
2016-01-20 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2364万
展开全部
你的意思是单独一列数据,然后拼成一行数据,是这个意思吧。比如一列中有三行,分别是“天”“地”“人”。你现在想得到一行数据“天地人”,是这个意思吧。
那么方法就是for xml path,具体的写法要根据实际情况来写,这里只能说利用这个方法,到底怎么写就要根据你的字段具体写了。
要知道具体使用方法只要在baidu上搜索:sqlserver for xml path,就可以得到很多提示,比我写的好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚子素
2016-01-21 · TA获得超过600个赞
知道小有建树答主
回答量:566
采纳率:33%
帮助的人:200万
展开全部

可以使用stuff函数结合xml path(),

比如:

SELECT STUFF( 
(SELECT ','+CONVERT(VARCHAR,sv.number) FROM MASTER.dbo.spt_values AS sv WHERE sv.[type]='p' AND sv.number <10 FOR XML PATH('')
),1,1,'')

结果为:0,1,2,3,4,5,6,7,8,9

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-01-24
展开全部
列拼接,STUFF FOR XML PATH()方法,你可以查下的,这个讲的很多的,可以自定义中间的间隔符的,上面的那个例子就是其中之一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式