2017-11-30 2 views
0

Ich bin auf der Suche nach neu zuordnen Werte für eine Spalte ("Name" in diesem Fall) basierend auf anderen Spalte ("Abteilung"). Nehmen Sie die ursprünglichen Daten wie folgt an.PL/pgSQL Um Werte auf bestimmten Matching-Bedingung neu zuordnen

Name, Division 
John, A 
James, B 
Mona, B 
Derek, C 
Lisa, C 

Wenn Division A oder C ist, dann werden Namen (division) name neu zugeordnet werden. Somit ergibt sich dann am Ende erforderlich ist:

Name, Division 
(A) John, A 
James, B 
Mona, B 
(C) Derek, C 
(C) Lisa, C 

Ich stelle mir vor, die Nutzung wird:

select remap_name(name), division from division_table; 

Ich würde mich lieben zuerst zu versuchen, aber plpgsql ist mir auch neu.

Antwort

0

Wie wäre es mit nur case?

select (case when division in ('A', 'C') then '(' || division || ') ' || name 
      else name 
     end) as name 
+0

eigentlich ja, das ist ziemlich genau das, was ich brauche. Vielen Dank – idazuwaika