• 自动秒收录
  • 软件:1973
  • 资讯:57945|
  • 收录网站:279743|

IT精英团

(Sql Server)数据的拆分和合并

(Sql Server)数据的拆分和合并

浏览次数:
评论次数:
编辑: 温瑜
信息来源: ITPUB
更新日期: 2022-09-23 01:47:10
摘要

背景:今天遇到了数据合并和拆分的问题,尝试了几种写法。但大致可分为两类:一、原始写法。二、SqlServer2005之后支持的写法。第一种写法复杂而且效率低下,不推荐。所以下面具体讲一下第二种

  • 正文开始
  • 相关阅读
  • 推荐作品

背景:

今天遇到了数据合并拆分的问题,尝试了几种写法。但大致可以分为两类:一是原创写作。二、Sql Server 2005之后支持的编写方式。不推荐第一种方法,因为它复杂且低效。那么下面就来详细说说第二种写法。

00-1010在讲分裂之前,我们先介绍两个函数:cross applyouter apply.这两个函数的作用是交叉连接。这两个功能只存在于sql server 2005之后,2000年的类似功能是cross join.虽然类似,但cross join有一个致命的功能缺陷。有关详细信息,请参见代码:

SELECT * FROM TEST01 AS T01交叉连接FUNC_TB2(T01。字段1)

- FUNC_TB2将在对表值函数执行此sql后报告错误。错误信息如下:Msg 4104,16级,状态1,第1行。无法绑定多部分标识符“T01.field1”。因此,cross join不能接受TEST01传递的值。由于cross join,的缺陷,cross applyouter apply被添加到SQL server 2005版本之后,这完全可以弥补这一缺陷。虽然cross applyouter apply的功能相似,但它们也有所不同。与cross applyFUNC _ TB2相交的结果将移除右边的空项,而outer apply将包含空项。

上面,我们具体讲了两个函数的具体用法。下面,我们来说说如何根据以上功能进行拆分。现有的Case:有一个表aaa,如图所示

,现在您需要拆分name字段中的数据。面对这样的情况,我们分两步走。第一步,拆弦;第二步是与id关联。上述准则形成了两种sql语句。

挑选

编号

,t02.item

从dbo.aaa AS t01交叉应用dbo。将(t01.name,',')拆分为t02

dbo。Split是一个自定义的字符串拆分函数,可以自己定义。

挑选

tb01.id

,tb02。价值

来自(

挑选

编号

,[value]=CONVERT(xml,' rootv' REPLACE(name,',','/vv') '/v/root ')

来自dbo.aaa)作为tb01

外部应用(

挑选

VALUE=N.v.VALUE(' . ',' varchar(100)')来自tb01。【价值】。节点('/root/v '

)N(v))作为tb02执行结果如图所示:

00-1010在2005版出来之前,数据合并是一件很麻烦的事情,效率很低。现在来说说05后的具体做法,就是通过xml操作来执行。案例如下:有一个表格bbb,如图:

现在,我们需要将它与Group by id合并。我们做什么呢

具体的sql如下:

挑选

编号

,东西((

挑选

,'类

从dbo.bbb作为tb01,其中tb01.id=tb02.id

FOR xml PATH(“”),1,1,“)作为类列表

来自dbo.bbb AS tb02

组id结果如下:

本文来自:fang_beny(转载请注明出处)

本文来自https://www.cnblogs.com/fang-beny/p/3255171.html.

标签:函数 写法 数据
sql server日期时间到字符串
« 上一篇 2022-09-23
  • sql server日期时间到字符串
    0阅读 0条评论 个赞
    一、sqlserver日期时间函数SqlServer中的日期与时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值……
  • Ubuntu上的SQL Server —— Ubuntu上的SQL Server(完整截图)
    0阅读 0条评论 个赞
    本文从零开始一步一步介绍如何在Ubuntu上搭建SQLServer2017,包括安装系统、安装SQL等相关步骤和方法(仅供测试学习之用,基础篇)。一.创建Ubuntu系统(CreateUbun……
  • SQL Server性能优化系列
    0阅读 0条评论 个赞
    这是关于SQLServer调优系列文章,以下内容基本涵盖我们日常中所写的查询运算的分解以及调优内容项,皆为原创........第一个基础模块注重基础内容的掌握,共分7篇文章完成,内容涵盖一系列基础运……
  • SQL Server十进制类型(浮点和十进制)
    0阅读 0条评论 个赞
    在SQLServer中,实际上小数数值只有两种数据类型:float和decimal,分别是近似数值和精确数值。其他小数类型,都可以使用float和decimal来替代,例如,双精度(doublep……
  • 将SQL Server数据库迁移到Azure SQL
    0阅读 0条评论 个赞
    最近有个维护的项目需要把SQLServer2012的数据库迁移到AzureSQL上去,迁移过程可谓一波三折,故在此分享这次迁移中碰到的点点滴滴,希望对朋友们有所帮助。AzureSQL……
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • SQL SERVER存储过程学习笔记
    6阅读 0条评论 个赞
    将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。存储过程的优点1.存储……
  • 记录在线超时的分析和故障排除过程
    2阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 人人都能读懂的源代码——那些关于DOM的常见钩子包(二)
    0阅读 0条评论 个赞
    本文是深入浅出ahooks源码系列文章的第十五篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本篇接着针对关于DOM的各个Hook封装进行解读。useFul……
  • 企业操作和维护实践-丢弃docker构建
    15阅读 0条评论 个赞
    本章目录目录0x00前言简述快速介绍什么是Kaniko?为啥用Kaniko?Kaniko是如何工作的?Kaniko已知功能问题kaniko构建上下文kaniko缓存构建0x01部署使用环境……
  • Java根据为什么要使用模板生成单词文件
    0阅读 0条评论 个赞
    1.准备模板模板+数据=模型1、将准备好的Word模板文件另存为.xml文件(PS:建议使用WPS来创建Word文件,不建议用Office)2、将.xml文件重命名为.ftl文件3、用文本编……
  • SQL Server数据库性能优化
    0阅读 0条评论 个赞
    分析比较执行时间计划读取情况1.查看执行时间和cpusetstatisticstimeonselect*fromBus_DevHistoryDatasetstatisticstime……
  • [PostgreSql]生产级数据库安装需要考虑哪些问题?
    0阅读 0条评论 个赞
    大家好,我是字母哥(coder)!我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yumins……
  • 谈ASP.NET核心认证与授权
    0阅读 0条评论 个赞
    使用asp.netcore开发应用系统过程中,基本上都会涉及到用户身份的认证,及授权访问控制,因此了解认证和授权流程也相当重要,下面通过分析asp.netcore框架中的认证和授权的源码来分析……
  • Python自学教程7:字典类型有什么用
    0阅读 0条评论 个赞
    字典是Python中的一个重要操作,如果字典玩得顺,很多其他的数据类型就可以一通百通。Python字典的定义字典使用一对大括号进行定义,键值对之间使用逗号隔开,键和值使用冒号分隔。键必须是不可变类型,……
  • 一个没有写代码的案例 让我们看看Flowable为我们提供了哪些功能
    3阅读 0条评论 个赞
    其实松哥之前已经写过文章和大家介绍了flowable-ui的玩法了,这是官方提供的一个工具,这个工具不仅可以用来绘制流程图,还可以用来部署一个流程应用,通过这个流程应用我们可以体验一把flowa……
  • 你知道信息架构图和功能架构图的区别吗?
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • Sql Server系列:分区表操作
    0阅读 0条评论 个赞
    1.分区表简介分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。分区表是把数据……
  • Python条件语句的用法
    0阅读 0条评论 个赞
    python条件语句使用if表达式,难度不高,需要注意的是嵌套用法,以及如何设置对应的条件。if条件判断语句python语句是按固定顺序执行的,先执行前面的语句,再执行后面的语句。如果你像要程……
  • :自古以来 特工程序就是兵家必败之地
    0阅读 0条评论 个赞
    正向代理的血案前几天打算使用golang做一个代理程序,golang标准库net/http/httputil已经提供了这样的能力。一把梭之后发现必然返回403Forbidden,我直接在targe……
  • 用Python实现广度优先搜索
    3阅读 0条评论 个赞
    图是一种善于处理关系型数据的数据结构,使用它可以很轻松地表示数据之间是如何关联的图的实现形式有很多,最简单的方法之一就是用散列表背景图有两种经典的遍历方式:广度优先搜索和深度优先搜索。两者是相似的。实……
  • 面试官:为什么系统不推荐双写?
    0阅读 0条评论 个赞
    某日,阿雄跑去面试!于是有如下情形面试官:"阿雄是吧,做做自我介绍!"阿雄:"我叫阿雄,来自某a国际电商公司!"面试官:"我看你项目里用了elasticsearch,你是怎么同步数据的呢?"阿……
  • sql server日期时间到字符串
    0阅读 0条评论 个赞
    一、sqlserver日期时间函数SqlServer中的日期与时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值……
  • 卡夫卡为什么表演这么快?4主要核心原因的详细说明
    0阅读 0条评论 个赞
    Kafka的性能快这是大厂Java面试经常问的一个话题,下面我就重点讲解Kafka为什么性能这么快的4大核心原因@mikechen1、页缓存技术Kafka是基于操作系统的页缓存(pagecach……
  • [设计模式] Java设计模式-桥模式
    0阅读 0条评论 个赞
    目录【设计模式】Java设计模式-桥接模式简介桥接模式实例代码示例①、品牌接口②、汽车品牌③、抽象汽车类④、汽车类型子类⑤、桥接模式测试1|1简介桥接(Bridge)是用于把抽象化与实现化解耦,使……
  • Linux系统的docker部署 网络核心3.1
    0阅读 0条评论 个赞
    此篇文章演示基本的基于docker部署.netcore服务,linux系统腾讯云ubuntu,.netcore版本3.1。1.安装dockeraptinstalldocker.io2.拉取.ne……
最近发布资讯
更多