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

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

Power View en SQL Server 2012 Primer Entrega

Machine Learning Services con SQL Server Managed Instance