es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Cómo capturar/verificar un texto específico de una columna estándar para poblar un valor en una columna calculada.

En SQL Server 2016, tengo una tabla con una columna varchar (título) que tiene algunos de los valores que se muestran a continuación.

title

ProALPHA – S – Implementación personalizada de la tabla HTML (E001445)

Implementación IKA CP (Aus) (E001534-0001)

Integración de prueba de compromiso: (E001637-0003) No facturable

Solicitud del cliente de personalización para migración de análisis y Java – E000797

Crear lista con clientes renovando en H2 2020

Quiero rellenar el valor de la columna calculada (derivada) basada en la columna de título anterior de tal manera que,

Busque si la columna de título contiene el texto E00, entonces solo la columna derivada tendrá el valor E00, de lo contrario, NULL.

Ejemplo,

(Consulte imagen)

Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puede utilizar las funciones CHARINDEX y CASE en SQL Server.

    Primero, deberá agregar una nueva columna a la tabla para la columna derivada:

    ALTER TABLE table_name ADD derived_column VARCHAR(10) NULL
    

    Luego, puede actualizar la columna derivada en función de si la columna de título contiene el texto “E00”:

    UPDATE table_name
    SET derived_column = 
        CASE 
            WHEN CHARINDEX('E00', title) > 0
            THEN 'E00'
            ELSE NULL
        END
    

    Esto comprobará si existe “E00” en la columna de título y rellenará la columna derivada con “E00” si es así, de lo contrario, será NULL.

    La tabla resultante se vería así:

    title                                                             | derived_column
    ------------------------------------------------------------------|---------------
    ProALPHA - S - HTML Custom Table implementation (E001445)         | E00
    IKA CP Implementation (Aus) (E001534-0001)                        | E00
    Test Engagment Integration: (E001637-0003) Non-billable           | E00
    Customer requests customization for Analytics and Java Migration | NULL
    Create list with customers renewing in H2 2020                     | NULL
    

Comments are closed.