首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2008:创建动态列名

SQL Server 2008:创建动态列名
EN

Stack Overflow用户
提问于 2013-07-23 23:27:15
回答 1查看 632关注 0票数 2

我有一个我无法解决的问题。我使用的是Microsoft SQL Server 2008,我有一个包含四列的表

代码语言:javascript
复制
Id
Date (2013-07, 2013-08, 2011-03, etc)
Amount 1 (100, 150, etc.) 
Amount 2 (100, 80, etc.)

如果为Amount 1 > 150,则需要使用Date中的值作为列名创建新列,并将Amount 2分发到从Date值后一个月开始的6个(日期)期间。

它应该看起来像这样:

代码语言:javascript
复制
      Id  Date      Amount 1  Amount 2
      ----------------------------------
      1   2013-07    160         60
      2   2013-10    180         80                            

      Id  Date     Amount 1  2013-08  2013-09  2013-10   2013-11   2013-12  2014-01 ...
      --------------------------------------------------------------------------------
      1   2013-07    160         10       10      10         10        10      10
      2   2013-10    180                                     20        20      20...   

我不知道该怎么做,任何帮助都是非常感谢的!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 00:24:07

表本身不应该有这些额外的列,因为这将是一个非规范化的表结构。在很多情况下,这是一种糟糕的数据存储方式。但是,您可以很容易地对现有表执行查询,该查询将返回所需表单中的其他列,以便以这种方式显示它。查看PIVOT and UNPIVOT

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17814496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档