从多列中获取 1 行

Posted

技术标签:

【中文标题】从多列中获取 1 行【英文标题】:Get 1 row from multiple columns 【发布时间】:2013-12-13 17:49:02 【问题描述】:

我有两张桌子

table#1:订单

orderid  unitid  active
      1      aa      1      
      2      bb      0
      3      cc      1
      4      dd      1

表#2:详细信息

orderid     month
      1         6
      1         7
      1        12
      2         1
      2         6
      3         1
      3         2
      3         3
      3         4
      3         6

所需的输出:

orderid   unitid     jan   feb  mar  apr  may  jun  .........  dec
  1           aa                               yes             yes
  3           cc     yes   yes  yes  yes

对于 ACTIVE 为 1 的所有订单和所有 unitid。

我尝试使用 case 语句,我得到一个 orderid 的多行,这不是我想要的。

我看到很多使用一张表进行数据透视的示例,如何使用 2 张表做到这一点?我正在使用 SQL Server 2012。

【问题讨论】:

嗨,“SQL 2012”是指 SQL Server 2012 吗?那么为什么它被标记为 Oracle 呢?如果不是,那是什么意思?如果您也可以edit 您的问题包含您迄今为止尝试过的内容,那就太好了。谢谢! 要使用两个表,只需编写一个连接并旋转结果。 嗨,本,感谢您的反馈。我已经编辑了文本。 【参考方案1】:

可能是 SELECT 中的 Select 作为参数

类似的东西;

Select orderid, unitid, (SELECT month 
                         From Table2 
                         WHERE ...)
From table1
Where ...

我用这个答案来引用这个问题:

A select query selecting a select statement

【讨论】:

以上是关于从多列中获取 1 行的主要内容,如果未能解决你的问题,请参考以下文章

根据熊猫中多列中的值从数据框中选择行

根据熊猫中多列中的值从数据框中选择行

根据熊猫中多列中的值从数据框中选择行

根据熊猫中多列中的值从数据框中选择行

mysql - 从多列中获取两个最大值

如何从 OPENJSON 获取多列值并交叉应用