Oracle SQL带回的结果不在于

时间:2013-10-18 09:16:15

标签: oracle

如果我有这样的表:

VALUE OWNER
--------------
test1 owner1
test2 owner1
test3 owner1
test4 owner1
test5 owner1
test1 owner2
test3 owner2
test5 owner2

如何为owner1

带回以下内容
test2
test4

基本上我希望所有结果都在owner1但不是owner2。

提前致谢

KS

3 个答案:

答案 0 :(得分:4)

select * from tablename where OWNER = 'owner1' and `value` NOT IN (
select value from tablename where OWNER = 'owner2')

答案 1 :(得分:2)

例如:

WITH my_data AS
  (SELECT 'test1' AS value, 'owner1' AS owner FROM dual
  UNION ALL SELECT 'test2' AS value, 'owner1' AS owner FROM dual
  UNION ALL SELECT 'test3' AS value, 'owner1' AS owner FROM dual
  UNION ALL SELECT 'test4' AS value, 'owner1' AS owner FROM dual
  UNION ALL SELECT 'test5' AS value, 'owner1' AS owner FROM dual
  UNION ALL SELECT 'test1' AS value, 'owner2' AS owner FROM dual
  UNION ALL SELECT 'test3' AS value, 'owner2' AS owner FROM dual
  UNION ALL SELECT 'test5' AS value, 'owner2' AS owner FROM dual)
SELECT
    value
  FROM my_data
WHERE owner = 'owner1'
MINUS
SELECT
    value
  FROM my_data
WHERE owner = 'owner2'
;

答案 2 :(得分:0)

从t中选择值,其中owner ='owner1' 减去 从t中选择值,其中owner ='owner2'