每行的 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一个标量值(单个值)。
我有一个查询 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一个标量值(单个值)。