我怎样才能缩写一个列表,这样
WHERE id IN ('8893171511',
'8891227609',
'8884577292',
'886790275X',
.
.
.)
成为
WHERE id IN (name of a group/list)
最佳答案
该列表确实必须出现在某个地方。从代码可维护和可重用的角度来看,您可以在 CTE 中表示列表:
WITH id_list AS (
SELECT '8893171511' AS id UNION ALL
SELECT '8891227609' UNION ALL
SELECT '8884577292' UNION ALL
SELECT '886790275X'
)
SELECT *
FROM yourTable
WHERE id IN (SELECT id FROM cte);
如果您一直需要这样做,那么也许 CTE 应该成为您数据库中某处的真实表。
编辑:根据 Horse 的建议,我们可以将 CTE 整理为以下内容:
WITH id_list (id) AS (
VALUES
('8893171511'),
('8891227609'),
('8884577292'),
('886790275X')
)
关于sql - 在 PostgreSQL 中缩写列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931991/