【问题标题】:SQL Return only rows that do not contain multiple values in columnSQL 只返回列中不包含多个值的行
【发布时间】:2023-02-10 23:03:10
【问题描述】:

拿下表

Col 1 Col2
aa null
aa date
aa null
bb date
cc null
cc null
dd date
dd date

我要返回的是下面的内容,其中仅当 col 2 是仅包含 null 和日期或仅删除 null 的日期行时,才返回 col 1。

Col 1 Col2
bb date
dd date
dd date

【问题讨论】:

  • 上面的答案不是同一个问题
  • 如果它没有回答问题,然后edit你的问题解释为什么它不回答它;只要您能证明原因,我总是很乐意重新提出问题。

标签: sql tsql


【解决方案1】:

我想这就是你想要的:

SELECT Col1, MAX(Col2) AS Col2
FROM yourTable
GROUP BY Col1
HAVING COUNT(CASE WHEN Col2 = 'date' THEN 1 END) = COUNT(*);

上述逻辑确保任何匹配的Col1值只有date出现在Col2中。

【讨论】:

  • 这将导致 dd 为 1 行,但 OP 想要两个都.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 2014-03-05
  • 2017-12-13
相关资源
最近更新 更多