gpt4 book ai didi

sql-server - SQL - 从单个字段中选择多个关键字值

转载 作者:行者123 更新时间:2023-12-01 06:09:27 24 4
gpt4 key购买 nike

因此,我正在构建一个 SQL View ,以获得我将用于报告的更具可读性的数据。我有一个表格,其中包含网站某个部分中问题的字段数据(关键字 ID)。 Column3 是一个多关键字字段,存储在由 chr(185) 分隔的 DB 中。
表格1

    Column1 | Column2 | Column3
4456 | 2323 | ¹8661¹8662¹
我有第二个表,其中包含关键字 ID 及其值。
表 2
  Column1  | Column2
4456 | val1
2323 | val2
8661 | val3
8662 | val4
该 View 连接表格以显示关键字值,但我不确定如何处理多关键字字段(希望对结果进行如下格式化)。
查看表
    Column1 | Column2 | Column3
val1 | val2 | val3; val4
我需要某种功能来实现这一点还是有其他方法?

最佳答案

这是使用一些 SQL Server 的 XML 特性来实现的一种方法......抱歉,列名和表名使这种难以阅读,这里是 fiddle :

with mapped (c1, c2, val) as ( 
select t1.column1, t1.column2, t2.column2
from table1 t1
cross apply (select convert(xml, '<_' + replace(substring(column3,2,len(column3)-2), '¹', '/><_') + '/>')) s(c)
cross apply c.nodes('*') x(n)
join table2 t2 on t2.column1=n.value('fn:substring(local-name(.),2)', 'int'))

select
column1 = c1.column2,
column2 = c2.column2,
column3 = (select val + '; ' from mapped where c1=t1.column1 and c2=t1.column2 for xml path(''))
from table1 t1
join table2 c1 on c1.column1=t1.column1
join table2 c2 on c2.column1=t1.column2

关于sql-server - SQL - 从单个字段中选择多个关键字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34295900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com