¿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_TXT
ynewfield
)?
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.