select 如何从具有重复值的列表中区分不同的记录?
How can select different records from a list with duplicated values?
我是 SQL/Oracle 领域的新人,我想寻求您的帮助。这是一个非常简单的问题,我被困住了。
所以,让我给你一张图片。我有一个常规 table,我们称它为“table1”。 PK 是第一列,“c1”。假设我想做以下 select
:
select (1) from table1 where c1 in ('1','2','3')
这会给我
(1)
1
1
2
1
3
1
但是,如果我进行以下 select
select (1) from table1 where c1 in ('1','2','2')
这会给我
(1)
1
1
2
1
我的问题是,为什么第二种情况没有3条记录?我可以修改第二种情况以提供 3 条记录吗,换句话说,我怎样才能防止选择行为像一个“不同的”子句?
我知道这可能是个假问题,所以让我先谢谢大家。
where
子句过滤由 from
子句生成的行。
where
子句中的条件仅指定给定行是否在结果集中。他们没有指定给定行在结果集中的次数。
如果要“乘以”行数,则需要使用 join
和具有重复值的派生 table。
我是 SQL/Oracle 领域的新人,我想寻求您的帮助。这是一个非常简单的问题,我被困住了。
所以,让我给你一张图片。我有一个常规 table,我们称它为“table1”。 PK 是第一列,“c1”。假设我想做以下 select
:
select (1) from table1 where c1 in ('1','2','3')
这会给我
(1) | |
---|---|
1 | 1 |
2 | 1 |
3 | 1 |
但是,如果我进行以下 select
select (1) from table1 where c1 in ('1','2','2')
这会给我
(1) | |
---|---|
1 | 1 |
2 | 1 |
我的问题是,为什么第二种情况没有3条记录?我可以修改第二种情况以提供 3 条记录吗,换句话说,我怎样才能防止选择行为像一个“不同的”子句?
我知道这可能是个假问题,所以让我先谢谢大家。
where
子句过滤由 from
子句生成的行。
where
子句中的条件仅指定给定行是否在结果集中。他们没有指定给定行在结果集中的次数。
如果要“乘以”行数,则需要使用 join
和具有重复值的派生 table。