栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将多列拆分为多行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将多列拆分为多行

SELECt
Y.UserID,
Y.UserName,
QuestionName = ‘AnswerToQuestion’ + X.Which,
Response =
CASE X.Which
WHEN ‘1’ THEN AnswerToQuestion1
WHEN ‘2’ THEN AnswerToQuestion2
WHEN ‘3’ THEN AnswerToQuestion3
END
FROM
YourTable Y
CROSS JOIN (SELECT ‘1’ UNIOn ALL SELECT ‘2’ UNIOn ALL SELECT ‘3’) X (Which)


这对UNPIVOT的性能同样好(有时更好),并且在SQL 2000中也可以工作。

我利用了问题的相似性来创建QuestionName列,但是当然这将适用于不同的问题名称。

请注意,如果问题列表很长或问题名称很长,则可以在X表中尝试两列,一列用于问题编号,一列用于问题名称。或者,如果您已经有了一个包含问题列表的表格,则交叉加入该表格。如果某些问题为NULL,那么最简单的方法是将上述查询放入CTE或派生表中,然后添加

WHEReResponse IS NOT NULL



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号