【问题标题】:Fetching value from multiple data set using sql query使用 sql 查询从多个数据集中获取值
【发布时间】:2014-05-05 16:19:03
【问题描述】:
 A       B
101 BOX
101 CAB
101 DAD
101 FIBC
101 INT
102 BOX
102 CAB
102 DAD
102 INT
103 BOX
103 CAB
103 FIBC
103 INT

这是 2 列 A 和 B 中的数据...如果我提供 'BOX','CAB','DAD','INT','FIBC' 那么只有 101 应该使用 sql 获取。需要使用sql查询请建议...

【问题讨论】:

  • 您的问题不清楚,请更具体以获得答案

标签: sql oracle plsql


【解决方案1】:
SELECT A FROM TABLEX WHERE B IN ('BOX','CAB','DAD','INT','FIBC')
HAVING COUNT(*) = 5

5 是列出的变量数,这当然是考虑到您不允许欺骗。

如果你允许欺骗,你总是可以这样包装它:

SELECT C.A FROM
(
    SELECT DISTINCT A, B FROM TABLEX WHERE B IN ('BOX','CAB','DAD','INT','FIBC')
) AS C
GROUP BY C.A
HAVING COUNT(*) = 5

【讨论】:

  • 如果您将值传递给函数,您可以使用类似于拆分函数 (4guysfromrolla.com/webtech/031004-1.shtml) 的方法,然后使用返回表来计算唯一值的数量并在 in子句创建唯一计数并找到具有所有属性的记录。
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 2015-03-28
相关资源
最近更新 更多