SQL SERVER 中 实现主表1行记录,子表多行记录 整合成一条虚拟列
表中有这样的记录,简单的主子表,现要想通过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行记录,子表多行记录 整合成一条虚拟列相关推荐
- SQL Server中的报表–如何使用数据透视表和日期计算来获取有价值的报表
介绍 (Introduction) A few months back I had been working on an interesting proof of concept for a huma ...
- 在SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作
所谓的数据传输,其实是指SQLServer访问Access.Excel间的数据. 为什么要考虑到这个问题呢? 由于历史的原因,客户以前的数据很多都是在存入在文本数据库中,如Acess.Excel.Fo ...
- sql server运算符_了解SQL Server中集合理论与集合运算符之间的相互作用
sql server运算符 In this article, we will describe the relation between the Set Theory and SQL Server S ...
- SQL Server中@@ROWCOUNT的用法
转自:http://www.studyofnet.com/news/146.html 本文导读:@@ROWCOUNT返回上一语句受影响的行数!和@ERROR一样的特性,在每一条语句执行后都将被重置,如 ...
- Sql Server中and和or的优先级问题
背景 前几天在给徒弟验收第一遍机房收费系统的时候,对于"组合查询"这一块,如果把三行查询内容输满的话,就会出错误,两行没有问题,经过第二遍验收后来和徒弟一同探讨这个问题,找到了出错 ...
- SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别
在SQL Server数据库登陆账户.数据库用户权限管理中,经常会授予权限.回收权限,有时还会拒绝权限.GRANT.REVOKE是我们常用的,但有时会遇到使用DENY的情形.从英文单词的字面意思来看, ...
- 在SQL Server中如何获得刚插入一条新记录的自动ID号
在SQL Server中如何获得刚插入一条新记录的自动ID号 收藏 --------------------------------------------------------------- 使用 ...
- SQL Server 中 ROWLOCK 行级锁
一.ROWLOCK的使用 1.ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOC ...
- SQL server 中的插入表行数据,以及插入标识值
语法介绍 (1)在SQL server数据库中我们如何添加新的行,并且添加数据呢? Insert:该语句向表中添加新行 values: 要插入的值 语法如下: Insert into 模式.表名(字段 ...
最新文章
- 清华刘知远组:​让预训练语言模型持续高效吸收新领域知识 | ACL 2022
- java取网页数据_浅析JAVA实现网页取内容
- CF里面的资源载入问题
- PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
- HDU1102 Constructing Roads 最小生成树
- 牛客题霸 NC18 顺时针旋转矩阵
- 反射_Class对象功能_获取Field
- 信息学奥赛一本通(1011:甲流疫情死亡率)
- Scala 解析 URL
- Linux中文件目录写法
- NetApp F3020 盘柜报警升级修复全过程
- 英伟达登录界面卡住_一汽夏利重组;东风贪腐案行贿者名单? 众泰被申请预重整;尼古拉承认造假;理想英伟达德赛西威将合作;宋PLUS上市[9月17日]...
- 裁员的沃森健康,问题重重的IBM人工智能业务
- python-贪心算法
- 阿里云DataV基础平面地图使用笔记(2)
- 经典的01背包问题(挖金矿)
- android型号的平板电脑,AUTOID Pad /Air-(win)/Air-(android)工业级平板电脑
- php单元测试入门教程phpunit详解
- Android源码分析-dex2oat
- 【小5聊】腾讯位置服务之小程序简单使用以及显示附近WC步行路线