【发布时间】:2021-06-13 14:20:48
【问题描述】:
我正在尝试使用WHERE IN (...ids) 格式获取所有行。这工作正常。但是如果IN 中的ID 重复,SQL 默认只返回该ID 的一行。
如果ID 存在N 次WHERE IN (...ids),我有没有办法获得同一行N 次?
例如: 表格中的数据
| id | name |
|---|---|
| 1 | AAA |
| 2 | BBB |
| 3 | CCC |
查询
SELECT * FROM people WHERE id IN (1, 2, 2, 3);
结果
| id | name |
|---|---|
| 1 | AAA |
| 2 | BBB |
| 3 | CCC |
预期结果
| id | name |
|---|---|
| 1 | AAA |
| 2 | BBB |
| 2 | BBB |
| 3 | CCC |
有没有办法在 SQL 中得到这个结果?
我正在使用 Postgres。
谢谢
| 3 | CCC |
【问题讨论】:
标签: sql postgresql