psql将值的常量列表用作表

  • 本文关键字:列表 常量 psql postgresql
  • 更新时间 :
  • 英文 :


使用psql,我想使用常量列表作为表,如下所示:

SELECT * 
FROM 
sportstable as S,
('soccer', 'tennis', 'basketball') as T
WHERE
S.id = someFunction(T.????)

我有常量("occer"、"tennis"、"basketball"(,在这种情况下,我需要对它们应用一个函数,称为someFunction。

有可能在psql中执行这样的操作吗?我知道这个列表("occer"、"网球"、"篮球"(不是一个表,所以我可能在使用这个概念时犯了一个大错误,但我仍然很好奇psql中是否有这样的东西。

您很接近,可以使用values()子句:

select *
from sportstable s
cross join ( 
values ('soccer'), ('tennis'), ('baskedball')
) as t(sport)
where s.id = somefunction(t.sport);

但这可能会复制sportstable中的行,而您可能不需要这些行。

我想你更想要:

select *
from sportstable s
where exists (select *
from ( 
values ('soccer'), ('tennis'), ('baskedball')
) as t(sport)
where s.id = somefunction(t.sport));

最新更新