当前位置: 首页 > 面试题库 >

将分号分隔的值替换为另一个表值

闻人越
2023-03-14
问题内容

我有两个表,BooksAuthors

桌子 Books

ID     Title     Authors
1      apple     1;2;3;
2      cancer    1;5;

桌子 Authors

ID     Name
1      John
2      Mike
3      Joe
4      Katy
5      Sara

我需要一个查询,结果是

ID     Title     Authors
1      apple     John;Mike;Joe
2      cancer    John;Sara

问题答案:

这个怎么样?但是,您必须确保Books表中的Authors列始终具有有效数据。

SELECT ID,
       Title,
       STUFF(CAST((SELECT ';' + aut.Name 
                     FROM Authors aut 
                    WHERE aut.ID IN 
                       (SELECT CAST(Split.a.value('.','VARCHAR(max)') AS int) As bid  
                          FROM  
                             ( SELECT CAST ('<M>' + REPLACE(LEFT(Authors, DATALENGTH(Authors)-1), ';', '</M><M>') + '</M>' AS XML) AS Data  
                             ) AS A CROSS APPLY Data.nodes ('/M') AS    Split(a))  
                      FOR XML PATH(''), TYPE))AS nvarchar(max)), 1,1,'')
 FROM Books


 类似资料:
  • 问题内容: 我试图通过首先从成功完成的列“ SupplierId”中转换逗号分隔的值来尝试连接两个表。但是,当我尝试通过外键“ DCLink”连接到另一个带有“供应商”名称的表“供应商”时,就会出现问题。 这就是我的意思: 原始表的选择语句, 得到这个结果 我可以使用此sql语句从SupplierId拆分列 并得到这些结果 但是,当我应用这段代码将InquiryDetails表连接到供应商名称上的

  • 问题内容: 我有一个这样的表: Department是另一个具有dept_id和dept_name作为列的表。我想要这样的结果, 有什么帮助吗? 问题答案: 您可以按照以下方式进行操作: 编辑: 基于我需要加入哪一列?在一个表中,我有逗号分隔的ID,而在其他表中,我只有ID

  • 问题内容: 我返回的值包含255个逗号分隔的值。有没有一种简单的方法可以将其拆分为不具有255 substr的列? 到 问题答案: 您可以使用: 我建议您在Excel(或其他电子表格)中生成255个数字的列,并使用电子表格生成SQL代码。

  • 我已经查看了Pandas的内置csv功能,但是我的csv数据保存在一个列表中。我如何简单地将列表隐藏到一个7列的数据帧中。 提前谢了。

  • 我得到了以下数组: 我想将其转换为以下内容: 做这件事最好的方法是什么? 到目前为止我已经试过了,所以得到了钥匙,但是它们的值是错误的:

  • 问题内容: 我有2张桌子如下 笔记表 职位表 我想查询我的Notes表并将’forDepts’列与Positions表中的值相关联。 输出应为: 我知道数据库应该规范化,但是我不能更改此项目的数据库结构。 这将用于使用以下代码导出excel文件。 此代码仅输出“ forDepts”的第一个值 考试:执行人员(而不是执行人员,公司行政人员,Art) 可以通过CONCAT或FIND_IN_SET完成吗