【发布时间】:2021-10-24 05:50:42
【问题描述】:
我是 SQL/Oracle 领域的新手,我想寻求您的帮助。这是一个非常简单的问题,我陷入了困境。
所以,让我给你一张照片。我有一张普通的桌子,我们称之为“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 c1 in ('1','2','2')是WHERE ( c1 = '1' OR c1 = '2' OR c1 = '2' )的语法简写,在语义上与WHERE ( c1 = '1' OR c1 = '2' )相同。 -
感谢您的解释!