代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
返回指定查询结果中,所有记录串接成一个字符串
作者:
元青
/ 发布于
2017/11/20
/
1083
返回指定查询结果中,所有记录串接成一个字符串
/***************************************************************************** 文 件 名: 创 建 人: 创建日期: 修改: 修改一: 修 改 人: 修改日期: 修改原因: 功能描述: 参数列表: 参数1:@Year 开始日期 参数2:@Month 结束日期 **** 处理流程: 1 *** 1.1 *** 2 *** 参考文档: 附加说明: print dbo.UDF_ConcatingQueryToSperatorStr( 'SELECT ''->''+pol.Operation+''[''+pfws.Work_Status+'']''+''(''+ISNULL(pfws.Machine_No,'''')+'')'' FROM FinishingDB.dbo.PdBatchHead AS pbh WITH (NOLOCK) JOIN FinishingDB.dbo.PdFnWorkStatus AS pfws WITH (NOLOCK) ON pfws.Batch_No = pbh.Batch_No JOIN SystemDB.dbo.pbOperationList AS pol ON pol.Operation_Code=pfws.Operation_Code WHERE pbh.Batch_No=''AG600310''' ,2) 如果使用函数实现这个过程的话,会报以下错误: 消息 557,级别 16,状态 2,第 1 行 只有函数和某些扩展存储过程才能从函数内部执行。 所以改为用存储过程实现; DECLARE @sql NVARCHAR(MAX) SET @sql=N'SELECT ''->''+pol.Operation+''[''+pfws.Work_Status+'']''+''(''+ISNULL(pfws.Machine_No,'''')+'')'' FROM FinishingDB.dbo.PdBatchHead AS pbh WITH (NOLOCK) JOIN FinishingDB.dbo.PdFnWorkStatus AS pfws WITH (NOLOCK) ON pfws.Batch_No = pbh.Batch_No JOIN SystemDB.dbo.pbOperationList AS pol ON pol.Operation_Code=pfws.Operation_Code WHERE pbh.Batch_No=''AG600310''' declare @result nvarchar(3000) exec dbo.USP_ConcatingQueryToSperatorStr @sql ,2 ,@result out select @result *****************************************************************************/ ALTER PROCEDURE USP_ConcatingQueryToSperatorStr ( @concatingDataSourceSql NVARCHAR(3000) ,@sepratorLen INT ,@concatingString NVARCHAR(3000) OUTPUT ) AS BEGIN PRINT @concatingDataSourceSql --DECLARE @concatingDataSourceSql NVARCHAR(MAX) --DECLARE @sepratorLen INT --SET @sepratorLen=2 --SET @concatingDataSourceSql= -- 'SELECT -- ''->''+pol.Operation+''[''+pfws.Work_Status+'']''+''(''+ISNULL(pfws.Machine_No,'''')+'')'' -- FROM FinishingDB.dbo.PdBatchHead AS pbh WITH (NOLOCK) -- JOIN FinishingDB.dbo.PdFnWorkStatus AS pfws WITH (NOLOCK) ON pfws.Batch_No = pbh.Batch_No -- JOIN SystemDB.dbo.pbOperationList AS pol ON pol.Operation_Code=pfws.Operation_Code -- WHERE pbh.Batch_No=''AG600310''' --DECLARE @concatingString NVARCHAR(3000) DECLARE @execSql NVARCHAR(MAX) SET @execSql = 'SET @concatingString= ( ' + @concatingDataSourceSql + ' FOR XML PATH(''''),TYPE ).value(''.'',''NVARCHAR(MAX)'') ' --PRINT @execSql EXEC sp_executesql @execSql,N'@concatingString NVARCHAR(3000) out',@concatingString OUT --SELECT @concatingString SET @concatingString= STUFF(@concatingString,1,@sepratorLen,'') --SELECT @concatingString --RETURN @concatingString END
试试其它关键字
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
元青
贡献的其它代码
(
13
)
.
Java 集合转换(Object[]数组、List、Set、Map相互转换
.
返回指定查询结果中,所有记录串接成一个字符串
.
文件相关
.
.net 提取 json 数据
.
#仅复制表结构不导数据
.
利用反射给实体属性赋值
.
Android获得系统时间(24小时制)
.
Js实现Ctrl+S/Ctrl+N/Ctrl+Z提交/撤销/新建/
.
Jquery-鼠标悬停(hover)切换 class 属性
.
判断页面是第一次打开还是刷新
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3