sqlserver中怎么将一列数据拼接成一个字符串
5个回答
展开全部
1、自定义函数
2、使用connect by子语句的SQL,用sys_connect_by_path函数连接
3、自定义聚合函数
SQL SERVER日志清除的使用方法
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存。
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定。
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,'')
这种问题,我平常除了喜欢用动态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,'')
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是单独一列数据,然后拼成一行数据,是这个意思吧。比如一列中有三行,分别是“天”“地”“人”。你现在想得到一行数据“天地人”,是这个意思吧。
那么方法就是for xml path,具体的写法要根据实际情况来写,这里只能说利用这个方法,到底怎么写就要根据你的字段具体写了。
要知道具体使用方法只要在baidu上搜索:sqlserver for xml path,就可以得到很多提示,比我写的好。
那么方法就是for xml path,具体的写法要根据实际情况来写,这里只能说利用这个方法,到底怎么写就要根据你的字段具体写了。
要知道具体使用方法只要在baidu上搜索:sqlserver for xml path,就可以得到很多提示,比我写的好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用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()方法,你可以查下的,这个讲的很多的,可以自定义中间的间隔符的,上面的那个例子就是其中之一
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询