¿Cómo puedo crear una columna en postgres a partir de valores y selecciones basadas en otras columnas?

Quiero crear un nuevo campo (o dos) en mi tabla que sea una concatenación de otros campos, que parece relativamente sencillo. Pero que es elcase sintaxis oif/when la sintaxis que usaría para ayudar a crear los siguientes campos (GPA_TXTynewfield)?

La lógica es: cada GPA debe ser#.#, cada nuevo campo debe ser:

name & "-" & GPA_TXT & (
    case where GPA_TXT > 3.3
        set newfield = newfield & 'GradeA',
    case where GPA_TXT >2.7 and GPA_TXT < 3.3
        set newfield = newfield & "GradeB",
    etc...
)

Por ejemplo:

name         major     GPA(num) GPA_TXT   [newfield]
Bob          sci       2        02.0      Bob-sci-GradeC-02.0
Jane         chem      3.1      03.1      Jane-chem-GradeB-03.1
Charlie      phys      3.7      03.7      Charlie-phys-GradeA-03.7
Garfield     food      0        00.0      Garfield-food-GradeF-00.0

Así que supongo que tengo dos preguntas aquí:

Cómo crear el campo GPA TXT.Cómo escribir una declaración de caso para calcular un campo de acuerdo con los valores de otros campos.

Si alguien me puede vincular a un recurso con ejemplos o explicaciones, ¡lo apreciaría enormemente! Estoy revisando la documentación pero sin llegar a ningún lado sin ejemplos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta