首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将行数据转换为列?

如何将行数据转换为列?
EN

Stack Overflow用户
提问于 2011-07-13 18:56:24
回答 2查看 104关注 0票数 0

我有来自sql表的数据,但不知道如何放入下面的表结构中。将数据转换为该结构的最佳方法是什么?

代码语言:javascript
复制
2011/07/13  Wednesday   10:00   1       
2011/07/13  Wednesday   10:30   1       
2011/07/13  Wednesday   11:00   0   
... 
2011/07/15  Friday      10:00   1       
2011/07/15  Friday      10:30   0       
2011/07/15  Friday      11:00   0       
2011/07/15  Friday      11:30   1   
... 
2011/07/16  Saturday    09:00   0       
2011/07/16  Saturday    09:30   1       
2011/07/16  Saturday    10:00   1   
...       
2011/07/17  Sunday      10:00   1       
2011/07/17  Sunday      10:30   0       
2011/07/17  Sunday      11:00   0       
2011/07/17  Sunday      11:30   1   
...         

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-13 22:03:51

如果你的RDBMS不支持PIVOT,你可以这样做:

代码语言:javascript
复制
SELECT
  TIME,
  (SELECT FLAG FROM SCHED S WHERE DATE = '7/13/2011' AND TIME = SCHED.TIME) AS [7/13/2011],
  (SELECT FLAG FROM SCHED S WHERE DATE = '7/14/2011' AND TIME = SCHED.TIME) AS [7/14/2011]
  ... other date columns ...
FROM            
   SCHED

假设您的表具有以下结构:

代码语言:javascript
复制
CREATE TABLE SCHED
(
    [DATE] date,
    TIME char(5),
    FLAG tinyint
)

您可能希望在子查询中使用日期/时间函数来计算与当前日期相关的日期,而不是像我一样对它们进行硬编码,但是您明白了:-)

票数 1
EN

Stack Overflow用户

发布于 2011-07-13 18:58:49

使用pivot运算符(MS-SQL)

请看这里:

How to transform a datatable to a ReportingService-like matrix?

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

https://stackoverflow.com/questions/6677784

复制
相关文章

相似问题

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