单行查询返回多行记录问题解决---拼接多行查询结果

-------正式脚本
 select 
 '('||T.gw_year||')'||T.gw_year_number||'号' as "任务号" ,
 T.APPLY_TITLE as "标题" ,
 (SELECT S.DEPT_NAME FROM SY_ORG_DEPT S WHERE S.DEPT_CODE = T.S_ODEPT) AS "申请机构" ,
 (SELECT W.DEPT_NAME FROM SY_ORG_DEPT W WHERE W.DEPT_CODE = T.S_DEPT) AS "申请部门" ,
 (SELECT Q.USER_NAME FROM SY_ORG_USER Q WHERE Q.USER_CODE = T.S_USER ) AS "申请人",
 T.USER_TEL as "联系电话", 
 T.S_ATIME as "起草时间",
 T.HT_TOTAL_MONEY as "招投标金额",
 T.Apply_Reason as "用印事由",
 (select wmsys.wm_concat(M.S_DNAME||'-'||M.S_UNAME||':'||M.MIND_CONTENT) from sy_comm_mind_v M WHERE M.DATA_ID = T.APPLY_ID AND M.MIND_CODE LIKE '%SP%') AS "省分公司本级审核意见" ,
 (select wmsys.wm_concat(substr(F.FILE_OBJ,INSTR(F.FILE_OBJ,',', 1, 1)+1))  from seal_file_list F WHERE F.APPLY_ID = T.APPLY_ID)  AS "用印文件"
 from seal_use_apply T
  where T.Code_Path  like '%201206161349120968m60ay%' 
  and T.Apply_Type = 'SEAL_USE_APPLY_ZH' 
  and  T.BELONG_BID = '1' 
  and T.s_atime < '2016-01-01 00:00:00'
  order by T.s_Odept desc ,T.s_Dept asc;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SQL Server中,如果要拆分多行数据,可以使用多种方法,以下是其中几种常用的方法: 1. 递归CTE(公共表达式):使用递归CTE可以将多行数据逐拆分成单行,并将其放入一个新的数据列中。具体步骤如下: - 创建递归CTE,将原始表作为初始查询结果。 - 在递归查询中使用UNION ALL将每一划分成两个部分,一部分是当前的某个拆分值,另一部分是剩余的拆分结果。 - 逐步递归,直到没有剩余为止。 - 使用组合窗口函数(如STRING_AGG)将递归CTE的拆分值合并成一个字符串。 2. 使用自定义函数:可以编写自定义函数来拆分多行数据。函数的输入参数为多行数据,输出参数为拆分后的单行数据。具体步骤如下: - 创建一个函数,接受多行数据作为参数。 - 在函数内部,使用循环结构(如WHILE)逐读取输入数据,并将其拆分成单行。 - 使用临时表或表变量保存单行数据。 - 循环结束后,将临时表或表变量中的数据合并成一个字符串。 3. 使用XML PATH方法:利用SQL Server中的FOR XML PATH语句可以将多行数据拼接成XML格式,并将其合并为一个字符串。具体步骤如下: - 使用SELECT语句查询多行数据,并使用FOR XML PATH语句将其转换为XML格式。 - 使用XML格式的数据进拆分,将其拼接一个字符串。 总之,SQL Server中可以使用递归CTE、自定义函数或XML PATH方法来拆分多行数据。具体选择哪种方法取决于具体的需求和数据结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值