作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的问题:
我在 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(LIKE
、XML PATH
和 STUFF
),它假定您想要按他们的 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
之所以可行,是因为:
LIKE
连接可找到与多值列匹配的任何 Answer_Expanded
行。XML PATH
模拟组连接...并允许将 ' '
指定为分隔符STUFF
删除前导分隔符。关于sql - 将 sql 列拆分为可查询的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098100/
我是一名优秀的程序员,十分优秀!