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
Comments