Consultas de SQL con Like y caracteres especiales

Cuando se tienen valores en columnas de una tabla y dichos valores contienen caracteres especiales tales como  %  _  [   ]  si se realizan consultas con el estatuto like entonces se podrían presentar problemas para poder realizar consultas.

//Para ilustrarlo primero creemos una tabla ejemplo

USE [Testing]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[TablaDescripciones](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Descripcion] [varchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

//Insertamos valores en esa tabla

INSERT INTO [Testing].[dbo].[TablaDescripciones]
           ([Descripcion])
     VALUES
           ('[descripcion con caracteres]%')
GO

//Si se hace la siguiente consulta no se obtienen los resultados

//esperados

select * from [TablaDescripciones] where [Descripcion] like '[descripcion con caracteres]%'

 

//Para obtener los resultados adecuados hay que cambiar

//el transact SQL para incluir el estatuto ESCAPE

select * from [TablaDescripciones] where [Descripcion] like '|[descripcion con caracteres]%' escape '|'

 

Saludos,

Eduardo Castro - Costa Rica

http://comunidadwindows.org

Comments

Popular posts from this blog

Desempeño de SQL Server 2008 R2 y Max Worker Threads

Cómo identificar consultas más pesadas en SQL Server

SQL Server La longitud de los datos LOB (2200100) que se van a replicar excede el máximo configurado 65536.