在Postgresql中创建一个常量

Asl*_*986 2 postgresql

假设我有这个查询:

select * 
from myTable
where myTable.myCol in (1,2,3)
Run Code Online (Sandbox Code Playgroud)

我想这样做:

with allowed_values as (1,2,3)
select * 
from myTable
where myTable.myCol in allowed_values
Run Code Online (Sandbox Code Playgroud)

它在第一行给我一个语法错误,你能帮我修复它吗?

ype*_*eᵀᴹ 6

我能想到的最接近你的语法:

WITH allowed_values (id) AS 
  ( VALUES
      (1), (2), (3)
  )
SELECT * 
FROM myTable
WHERE id IN 
   (TABLE allowed_values) ;
Run Code Online (Sandbox Code Playgroud)

SQL-Fiddle中测试过