You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UNPIVOT操作时如何添加被转置的原列名?

嘿,其实你离解决问题只差一步啦!你写的UNPIVOT语句里已经藏着你要的原列名字段了——就是那个names!

你看,UNPIVOT子句里的FOR names IN (...),这里的names就是系统自动帮你生成的列,专门用来存储被转置的原列名(sport、yahoo、mobile这些)。你之前用'ColumnName'占位完全没必要,直接把它放进SELECT列表里就行。

修正后的查询应该是这样的:

SELECT names AS ColumnName, myData, wename, weblangue, wid 
FROM website 
UNPIVOT ( 
    myData FOR names IN (sport, yahoo, mobile, di, onet, player) 
) temp

这样运行后,ColumnName列就会显示对应的原列名,和每行的myData值一一对应啦。

如果你是担心列太多手动写麻烦,想通过sys.columns动态获取列名的话,可以用动态SQL来生成UNPIVOT语句,不过对于你现在的场景,直接用上面的方法就足够简单高效了。

内容的提问来源于stack exchange,提问作者Benoît S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:13:05