SQL - Condicional con string

   
Vista:

Condicional con string

Publicado por Adrián (5 intervenciones) el 02/02/2018 13:11:25
Hola buenas, tengo una tabla con muchas columnas, y una de ellas se llama "Part", en ella se registran diversas string como identificadores (V5728......, VPAN5728..., etc)

Quiero crear una columna nueva llamada "Programa" en la cual dependiendo de si contienen en la columna "Part" "V5728" sea el progrma igual a CATT y si contiene "VPAN5728" en la columna "Part" sea el programa DADD.

He intentado usar lo siguiente pero me da un error:


Select
Part,
(case when (CONTAINS(Part, 'V5728')) then 'CATT' when (CONTAINS(Part, 'VPAN5728')) then 'DADD' end) as Programa
from "Table"


Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Condicional con string

Publicado por Leonardo Josué (1076 intervenciones) el 02/02/2018 15:42:51
Hola Adrián:

No nos dices qué error es el que te está arrojando la consulta. Esto es muy importante porque te puede dar una pista de qué es lo que está mal en tu consulta. Las causas pueden ser muchas, pero en este caso creo que se trata de un error de sintaxis en el CASE-WHEN.

Tampoco nos dices con qué BD's estás trabajando. Este dato es muy importante pues cada DBMS trabaja con una sintaxis distinta.

Puedes tratar de hacer esto:

1
2
3
4
5
6
7
8
9
10
SELECT
  part,
  CASE WHEN (CONTAINS(Part, 'V5728'))
    THEN 'CATT'
    ELSE
      CASE WHEN (CONTAINS(Part, 'VPAN5728'))
        THEN 'DADD'
      END
  END Programa
FROM Table

Es decir, estás anidando dos sentencias CASE-WHEN. Si esto no funciona, postea el mensaje de error que te arroje el motor de BD's y dinos cuál es, así podremos tratar de ver qué es lo que está mal.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar