需要sql生成预期结果中所示的输出 客户|添加顺序|城市|电话 测试1 | 1 |德里| 1231 测试1 | 2 |诺伊达| 2334 测试2 | 1 |班加罗尔| 3333 测试2 | 2 |诺伊达| 3333 测试2 | 3 |钦奈| 5565 测试3 | 2 |钦奈| 5565 测试4 | 1 |诺伊达| 3333 测试4 | 2 |钦奈| 5565 测试5 | 1 |钦奈| 5565

需要sql生成预期结果中所示的输出 客户|添加顺序|城市|电话 测试1 | 1 |德里| 1231 测试1 | 2 |诺伊达| 2334 测试2 | 1 |班加罗尔| 3333 测试2 | 2 |诺伊达| 3333 测试2 | 3 |钦奈| 5565 测试3 | 2 |钦奈| 5565 测试4 | 1 |诺伊达| 3333 测试4 | 2 |钦奈| 5565 测试5 | 1 |钦奈| 5565,sql,oracle,Sql,Oracle,需要所有客户行,同时具有Noida和Chennai地址 预期结果: 测试2 | 2 |诺伊达| 3333 测试2 | 3 |钦奈| 5565 测试4 | 1 |诺伊达| 3333 测试4 | 2 |钦奈| 5565 存在一种简单的方法。只需两个地址: select t.* from t where t.city in ('Noida', 'Chennai') and exists (select 1 from t t2 wher

需要所有客户行,同时具有Noida和Chennai地址

预期结果:

测试2 | 2 |诺伊达| 3333 测试2 | 3 |钦奈| 5565 测试4 | 1 |诺伊达| 3333 测试4 | 2 |钦奈| 5565 存在一种简单的方法。只需两个地址:

select t.*
from t
where t.city in ('Noida', 'Chennai') and
      exists (select 1
              from t t2
              where t2.customer = t.customer and
                    t2.city in ('Noida', 'Chennai') and
                    t2.city <> t.city
             );
存在一种简单的方法。只需两个地址:

select t.*
from t
where t.city in ('Noida', 'Chennai') and
      exists (select 1
              from t t2
              where t2.customer = t.customer and
                    t2.city in ('Noida', 'Chennai') and
                    t2.city <> t.city
             );

您可以使用windows功能

select * from
(select t.*, count(distinct city) over (partition by customer) as cnt
from your_Table t
where city in ('Noida','Chennai')
) where cnt = 2

您可以使用windows功能

select * from
(select t.*, count(distinct city) over (partition by customer) as cnt
from your_Table t
where city in ('Noida','Chennai')
) where cnt = 2

要获得想要的结果,您需要选择城市为“Noida”或“Chennai”,客户为“Test2”或“Test4”的所有数据:

SELECT *
  FROM TEST_DATA
  WHERE CITY IN ('Noida', 'Chennai') AND
        CUSTOMER IN ('Test2', 'Test4')
  ORDER BY Customer

要获得想要的结果,您需要选择城市为“Noida”或“Chennai”,客户为“Test2”或“Test4”的所有数据:

SELECT *
  FROM TEST_DATA
  WHERE CITY IN ('Noida', 'Chennai') AND
        CUSTOMER IN ('Test2', 'Test4')
  ORDER BY Customer

您使用的是哪种DBMS产品?SQL只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。您使用的是哪种DBMS产品?SQL只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。不会显示客户的所有行,只有这两行有“Noida”或“Chennai”city@Tejash:显然,如果没有t2.city t.city,子查询将再次找到外部行,因此显示所有带有Noida或Chennai的行,无论是否有其他城市的第二个条目。不显示客户的所有行,只有那两个有“诺伊达”或“钦奈”city@Tejash:显然,如果没有t2.city t.city,子查询将再次找到外部行,因此显示所有带有Noida或Chennai的行,无论是否有另一个城市的第二个条目。