PL/pgSQL 根据特定匹配条件重新映射值
PL/pgSQL To Remap Values on Certain Matching Condition
我希望根据其他列 ('division') 重新映射一列(在本例中为 'name')的值。假设原始数据如下。
Name, Division
John, A
James, B
Mona, B
Derek, C
Lisa, C
如果除法是 A 或 C,则名称将被重新映射到 (division) name
。
因此,最终所需的结果是:
Name, Division
(A) John, A
James, B
Mona, B
(C) Derek, C
(C) Lisa, C
我想象的用法是:
select remap_name(name), division from division_table;
我很想先尝试一下,但是 plpgsql 对我来说太新了。
只使用 case
怎么样?
select (case when division in ('A', 'C') then '(' || division || ') ' || name
else name
end) as name
我希望根据其他列 ('division') 重新映射一列(在本例中为 'name')的值。假设原始数据如下。
Name, Division
John, A
James, B
Mona, B
Derek, C
Lisa, C
如果除法是 A 或 C,则名称将被重新映射到 (division) name
。
因此,最终所需的结果是:
Name, Division
(A) John, A
James, B
Mona, B
(C) Derek, C
(C) Lisa, C
我想象的用法是:
select remap_name(name), division from division_table;
我很想先尝试一下,但是 plpgsql 对我来说太新了。
只使用 case
怎么样?
select (case when division in ('A', 'C') then '(' || division || ') ' || name
else name
end) as name