【问题标题】:SQL Select for unique value in a columnSQL 选择列中的唯一值
【发布时间】:2014-02-25 23:12:01
【问题描述】:

我有一张这样的桌子

| ID | COL1 | COL2 |
| 1  |   1  |  w   |
| 1  |   2  |  x   |
| 2  |   1  |  y   |
| 2  |   2  |  z   |

当我查询它时,我想得到

| ID | COL2:1 | COL2:2 |    <--- (when COL1=1 and COL1 =2)
| 1  |   w    |    x   |
| 2  |   y    |    z   |

我已经为同一个表尝试了GROUP BYJOIN,但我得到了重复的数据而不是分组数据。我需要一些关于如何获得我期望的结果的指示。

【问题讨论】:

  • 在问题中包含您尝试过的查询。

标签: sql select plsql


【解决方案1】:

您可以为此使用MAX()CASE 语句:

SELECT ID
      ,MAX(CASE WHEN Col1 = 1 THEN Col2 END) AS Col2_1
      ,MAX(CASE WHEN Col1 = 2 THEN Col2 END) AS Col2_2
FROM YourTable
GROUP BY ID

演示:SQL Fiddle

【讨论】:

  • +1 for SQL Fiddle...我不知道那个网站:)
  • 谢谢山羊公司!我欠你一大笔!看来我需要使用 MAX 功能才能进行 GROUP BY,谢谢,太好了 SQL Fiddle 我会使用它!
猜你喜欢
  • 2014-07-14
  • 1970-01-01
  • 2012-01-24
  • 2012-03-28
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 2019-11-19
相关资源
最近更新 更多