每行的 PostgreSQL 函数

PostgreSQL function for each row

我有一个查询 return 对我来说 table 是这样的:

id | VAL | Type
-- | --- | ----
1  | 10  |  A
2  | 20  |  B 
3  | 30  |  C
4  | 40  |  B

我想为每一行调用一些函数,这将检查类型并为每种类型做一些事情,比如 C# 中的 IF:

if(type=='A'){}
if(type=='B'){}
if(type=='C'){}

我怎样才能在 Postgresql 中仅使用 sql 制作这两个东西?

在标准 SQL 中,您可以在此处使用 CASE 短语:

SELECT id, val, "type",
       CASE "type"
       WHEN 'A' THEN funcA()
       WHEN 'B' THEN funcB()
       WHEN 'C' THEN funcC()
       END AS func_result,
FROM <table>;

所有函数都应该return一个标量值(单个值)。