【问题标题】:pivot: row in column枢轴:列中的行
【发布时间】:2023-03-20 15:54:01
【问题描述】:

-1 否决票 我有一个查询返回以下

Id        Type     data         char
1111      date     1999-06-30   NULL
1111      name     NULL         James
1111      string1  NULL         Yes
1111      string2  NULL         No
2222      date     1965-07-09   NULL
2222      name     NULL         Chris
2222      string1  NULL         No
2222      string2  NULL         Yes

我会的

Id       date          name   string1 string2
1111     1999-06-30    James  Yes     No
2222     1965-07-09    Chris  No      Yes

是否有可能使用 PIVOT sql 函数获得该结果?

【问题讨论】:

  • 你试过什么代码,结果如何?

标签: sql sql-server tsql pivot


【解决方案1】:

假设您不需要动态,一个简单的条件聚合应该可以解决问题

Select ID
      ,date    = max(case when [type]='date'    then [data] end)
      ,name    = max(case when [type]='name'    then [char] end)
      ,string1 = max(case when [type]='string1' then [char] end)
      ,string2 = max(case when [type]='string2' then [char] end)
 From (
        -- Your Query or Table
      ) A
 Group By ID

【讨论】:

  • @Ann 很高兴它有帮助。
猜你喜欢
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多