gpt4 book ai didi

sql - 将 sql 列拆分为可查询的结果集

转载 作者:行者123 更新时间:2023-12-04 16:47:02 24 4
gpt4 key购买 nike

这是我的问题:

我在 sql 列中有一列包含以下数据:

Answers
=======
1:2:5: <--- notice my delimiter

我需要能够将数字分解成一个结果集,我可以将其加入查找表中,例如

Answers_Expanded
=======
1 apple
2 pear
3 cherry
4 mango
5 grape

返回

Answers
=======
apple pear grape

有这样的方法吗?

谢谢!

最佳答案

这有点像 hack(LIKEXML PATHSTUFF),它假定您想要按他们的 ID 排序的答案,而不是与多值列中的原始顺序匹配......

但这给出了您正在寻找的结果:

SELECT STUFF((
SELECT ' ' + ae.Answer
FROM
Answers_Expanded ae
JOIN Answers a ON ':' + a.Answers LIKE '%:' + CAST(ae.ID AS VARCHAR) + ':%'
ORDER BY ae.ID
FOR XML PATH(''))
, 1, 1, '') AS Answers

Sql Fiddle

之所以可行,是因为:

  1. 使用 LIKE 连接可找到与多值列匹配的任何 Answer_Expanded 行。
  2. XML PATH 模拟组连接...并允许将 ' ' 指定为分隔符
  3. STUFF 删除前导分隔符。

关于sql - 将 sql 列拆分为可查询的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098100/

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