表中有这样的记录,简单的主子表,现要想通过left join 语句把两表关联起来

 

 

select * from tbl_diary_reback a left join tbl_diary_reback_files s on a.id =s.diaryrebackid where diaryid = '-7e0f6876:1400eb06d1f:-7fed' and diaryrebackid = '1a75114e:140136e5d5f:-7ff3'

由于子表是两条不同数据,会出现两条记录。如果这里想整合成一条记录,可以主表造两个虚拟列分别存图中的fileid字段,但是如果是未知个子表则无法知道需要创建多少个虚拟列(应该有DDL语法循环中创建列,在此不做研究)。

通过SQL SERVER带的OUTER APPLY方法可以构造出虚拟列

SELECTA.*,
CAST(fileid AS varchar(4000)) fileid   FROM(   SELECT *      FROMtbl_diary_reback where id = '1a75114e:140136e5d5f:-7ff3')A      OUTER APPLY(       SELECT[fileid]= STUFF(REPLACE(REPLACE(         (          SELECTfileid FROMtbl_diary_reback_files N          WHEREdiaryrebackid = A.id          FOR XML AUTO         ),'<N fileid="',','),'"/>',''),1,1,'')      )N 

红色字符位置必须保证一致,查询结果为

两条子表记录fileid通过","隔开 虚拟成一列

转载于:https://www.cnblogs.com/dyllove98/p/3214943.html

SQL SERVER 中 实现主表1行记录,子表多行记录 整合成一条虚拟列相关推荐

  1. SQL Server中的报表–如何使用数据透视表和日期计算来获取有价值的报表

    介绍 (Introduction) A few months back I had been working on an interesting proof of concept for a huma ...

  2. 在SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作

    所谓的数据传输,其实是指SQLServer访问Access.Excel间的数据. 为什么要考虑到这个问题呢? 由于历史的原因,客户以前的数据很多都是在存入在文本数据库中,如Acess.Excel.Fo ...

  3. sql server运算符_了解SQL Server中集合理论与集合运算符之间的相互作用

    sql server运算符 In this article, we will describe the relation between the Set Theory and SQL Server S ...

  4. SQL Server中@@ROWCOUNT的用法

    转自:http://www.studyofnet.com/news/146.html 本文导读:@@ROWCOUNT返回上一语句受影响的行数!和@ERROR一样的特性,在每一条语句执行后都将被重置,如 ...

  5. Sql Server中and和or的优先级问题

    背景 前几天在给徒弟验收第一遍机房收费系统的时候,对于"组合查询"这一块,如果把三行查询内容输满的话,就会出错误,两行没有问题,经过第二遍验收后来和徒弟一同探讨这个问题,找到了出错 ...

  6. SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别

    在SQL Server数据库登陆账户.数据库用户权限管理中,经常会授予权限.回收权限,有时还会拒绝权限.GRANT.REVOKE是我们常用的,但有时会遇到使用DENY的情形.从英文单词的字面意思来看, ...

  7. 在SQL Server中如何获得刚插入一条新记录的自动ID号

    在SQL Server中如何获得刚插入一条新记录的自动ID号 收藏 --------------------------------------------------------------- 使用 ...

  8. SQL Server 中 ROWLOCK 行级锁

    一.ROWLOCK的使用 1.ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOC ...

  9. SQL server 中的插入表行数据,以及插入标识值

    语法介绍 (1)在SQL server数据库中我们如何添加新的行,并且添加数据呢? Insert:该语句向表中添加新行 values: 要插入的值 语法如下: Insert into 模式.表名(字段 ...

最新文章

  1. 清华刘知远组:​让预训练语言模型持续高效吸收新领域知识 | ACL 2022
  2. java取网页数据_浅析JAVA实现网页取内容
  3. CF里面的资源载入问题
  4. PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
  5. HDU1102 Constructing Roads 最小生成树
  6. 牛客题霸 NC18 顺时针旋转矩阵
  7. 反射_Class对象功能_获取Field
  8. 信息学奥赛一本通(1011:甲流疫情死亡率)
  9. Scala 解析 URL
  10. Linux中文件目录写法
  11. NetApp F3020 盘柜报警升级修复全过程
  12. 英伟达登录界面卡住_一汽夏利重组;东风贪腐案行贿者名单? 众泰被申请预重整;尼古拉承认造假;理想英伟达德赛西威将合作;宋PLUS上市[9月17日]...
  13. 裁员的沃森健康,问题重重的IBM人工智能业务
  14. python-贪心算法
  15. 阿里云DataV基础平面地图使用笔记(2)
  16. 经典的01背包问题(挖金矿)
  17. android型号的平板电脑,AUTOID Pad /Air-(win)/Air-(android)工业级平板电脑
  18. php单元测试入门教程phpunit详解
  19. Android源码分析-dex2oat
  20. 【小5聊】腾讯位置服务之小程序简单使用以及显示附近WC步行路线

热门文章

  1. 中小企业网络安全提升
  2. linux(虚拟机中)与windows共享文件两种方法
  3. 转:Yupoo(又拍网)的系统架构
  4. 从最大似然到EM算法浅解(转载)
  5. 搭建Servlet在线视频
  6. 真格量化——中性策略交易期权
  7. 25--最后一个单词的长度
  8. Springboot,SSM框架的区别
  9. 关于国内厂商的国际版杀毒软件
  10. python中tkinter的使用-下