none
encontrar palabra en descricpion RRS feed

  • Pregunta

  • como puedo distinguier en sql algo como esto

    tengo la palabra dentro de una descripción como puedo obtener esta palabra si esta escrita asi ISOCIANATO

    'ISOCIANATO'   ó 'ISOCYANATO'    ó  'ISOCYANATu'  

    lo tengo dentro de una descripcipon por loq ue debería ser algo asi,

    '%ISOC%ANAT%'  

    claro que esto estaría mal pero debe ir un % adelnate y atrás

    saludos.

    martes, 19 de julio de 2016 21:16

Respuestas

Todas las respuestas

  • Augusto C,

    Revisa la documentación del predicado LIKE verás las posibilidades de uso de los comodines:

    Puedes hacerlo de dos maneras:

    DECLARE @T table (Descripcion varchar(100));
    INSERT INTO @T VALUES
    ('ISOCIANATO'),  ('ISOCIANATO'), ('ISOCYANATO'), ('ISOCYANATu')
    
    SELECT * FROM @T WHERE Descripcion LIKE 'ISOC[IY]ANAT[Ou]';
    
    SELECT * FROM @T WHERE Descripcion LIKE 'ISOC_ANAT_';

    En la primera consulta restringes a que los caracteres sean [I o Y] y [O y u] respectivamente, en la segunda consulta no importa el caracter incluido en la cadena, lo usas según requieras.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 19 de julio de 2016 21:38
  • Augusto C,

    Revisa la documentación del predicado LIKE verás las posibilidades de uso de los comodines:

    Puedes hacerlo de dos maneras:

    DECLARE @T table (Descripcion varchar(100));
    INSERT INTO @T VALUES
    ('ISOCIANATO'),  ('ISOCIANATO'), ('ISOCYANATO'), ('ISOCYANATu')
    
    SELECT * FROM @T WHERE Descripcion LIKE 'ISOC[IY]ANAT[Ou]';
    
    SELECT * FROM @T WHERE Descripcion LIKE 'ISOC_ANAT_';

    En la primera consulta restringes a que los caracteres sean [I o Y] y [O y u] respectivamente, en la segunda consulta no importa el caracter incluido en la cadena, lo usas según requieras.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    entiendo que l gion es como un comodin para un caracter , como en el excel lo es ?, 
    martes, 19 de julio de 2016 21:44
  • Augusto C,

    El guión bajo representa cualquier caracter individual.


    • Editado Willams Morales martes, 19 de julio de 2016 21:51
    • Marcado como respuesta Augusto C martes, 19 de julio de 2016 22:10
    martes, 19 de julio de 2016 21:51
  • Augusto C,

    El guión bajo representa cualquier caracter individual.


    perfecto  gracias y aprovechando su conocimiento ,habrá alguna forma de validar los espacios en blanco tambien

    si en excel es algo asi

    (CONTAR.SI(AM162;"*TOLUEN? *ISOC?ANAT?*")

    en sql sería algo como

    %TOLUEN_ %ISOC_ANAT_%

    Pero falta el espcio en blanco entre .....EN?(espacioenblanco)*ISOC......


    • Editado Augusto C martes, 19 de julio de 2016 21:59
    • Marcado como respuesta Augusto C martes, 19 de julio de 2016 22:10
    • Desmarcado como respuesta Augusto C martes, 19 de julio de 2016 22:10
    martes, 19 de julio de 2016 21:59
  • Augusto C,

    De igual manera, un caracter de espacio en blanco puedes representarlo como [ ]

    • Marcado como respuesta Augusto C martes, 19 de julio de 2016 22:10
    martes, 19 de julio de 2016 22:04
  • No me está saliendo esta consulta

    DECLARE @T table (Descripcion varchar(100));
    INSERT INTO @T VALUES
    ('COLORURO DE ISOCIANATO'),  ('TOLUENO ISOCIANATO'), ('MARIA DE ISOCYANATO'), ('ISOCYANATu')
    
    --SELECT * FROM @T WHERE Descripcion LIKE 'ISOC[IY]ANAT[Ou]';
    
    SELECT * FROM @T WHERE Descripcion LIKE '%TOLUEN_[]ISOC_ANAT_%';

    martes, 19 de julio de 2016 22:27
  • Augusto C,

    ¿Deseas obtener sólo el segundo registro? Entre corchetes va el caracter de espacio en blanco, no vacío.

    DECLARE @T table (Descripcion varchar(100));
    INSERT INTO @T VALUES
    ('COLORURO DE ISOCIANATO'),  ('TOLUENO ISOCIANATO'), ('MARIA DE ISOCYANATO'), ('ISOCYANATu')
    
    SELECT * FROM @T WHERE Descripcion LIKE '%TOLUEN_[ ]ISOC_ANAT_%';

    martes, 19 de julio de 2016 22:32