随、风 2024-03-06 09:19 采纳率: 28.6%
浏览 9
已结题

SQL server数据库,切分字段并关联表

ID编码
193&94
293
393&94&95
编码内容
93其他包装
94纸箱
95泡沫

有以上两个表,其中表1的编码如果有多个是以&来区分两个编码,表1和表2可以通过编码相关联。请问如何通过SQL得到以下的结果集(SQL server数据库):

ID编码内容
193&94其他包装/纸箱
293纸箱
393&94&95其他包装/纸箱/泡沫
  • 写回答

4条回答 默认 最新

  • GISer Liu 2024-03-06 09:20
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据问题描述,你需要在 SQL Server 数据库中处理两个表的数据,并按照指定格式关联输出结果。解决这个问题可以分为以下几个步骤:

    1. 拆分编码字段 :对表1中的编码字段进行拆分,以便后续关联查询。
    2. 关联表 :将拆分后的编码与表2关联,获取对应的内容。
    3. 合并内容 :将关联查询得到的内容合并成指定格式的字符串。
      下面是具体的解决方案,我将按照代码大纲的方式逐步展开:

      1. 拆分编码字段

      sqlCopy code
      SELECT ID, value AS Code
      FROM Table1
      CROSS APPLY STRING_SPLIT(Code, '&')
      
      这段代码会将表1中的编码字段按照 "&" 符号进行拆分,每个拆分后的编码对应一行记录。

      2. 关联表

      sqlCopy code
      SELECT t1.ID, t2.Content
      FROM (
      SELECT ID, value AS Code
      FROM Table1
      CROSS APPLY STRING_SPLIT(Code, '&')
      ) t1
      LEFT JOIN Table2 t2 ON t1.Code = t2.Code
      
      这段代码将拆分后的编码与表2进行左连接,以获取对应的内容。

      3. 合并内容

      sqlCopy code
      SELECT ID,
      STUFF((
      SELECT '/' + ISNULL(t2.Content, '')
      FROM (
      SELECT ID, value AS Code
      FROM Table1
      CROSS APPLY STRING_SPLIT(Code, '&')
      ) t1
      LEFT JOIN Table2 t2 ON t1.Code = t2.Code
      WHERE t1.ID = t.ID
      FOR XML PATH('')
      ), 1, 1, '') AS MergedContent
      FROM Table1 t
      GROUP BY ID
      
      这段代码使用 STUFF 函数和 FOR XML PATH('') 将每个 ID 对应的内容合并成指定格式的字符串。
      请确保将上述代码中的 Table1Table2
      替换为实际的表名。如果在实际执行过程中遇到任何问题,请提供报错信息,我将帮助你解决。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 创建了问题 3月6日

悬赏问题

  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。
  • ¥15 GitHubssh虚拟机连接不上
  • ¥15 装完kali之后下载Google输入法 重启电脑后出现以下状况 且退不出去 桌面消失 反复重启没用
  • ¥15 ESP-IDP-BLE配网连接wifi