values uso operador not multiple sql-server tsql sql-like

uso - ¿Cómo encuentro ''%'' con el operador LIKE en SQL Server?



uso de like en sql (3)

Prueba esto:

declare @var char(3) set @var=''[%]'' select Address from Accomodation where Address like ''%''+@var+''%''

Debe usar [] para cancelar el efecto de comodín, de modo que lea% como un carácter normal, idem sobre el carácter _

Esta pregunta ya tiene una respuesta aquí:

Tengo una dirección de nombre de columna que consiste en una dirección que tiene ''%'' en medio como:

Address -------------------- Aman Ja%lan% Stree% Ro%ad

etcétera etcétera.

¿Cómo puedo escribir el operador LIKE para encontrar ese patrón?

Lo intenté:

declare @var char(1) set @var=''!%'' select Address from Accomodation where Address like ''%''+@var+''%''



yo usaría

WHERE columnName LIKE ''%[%]%''

SQL Server almacena estadísticas de resumen de cadenas para usar en la estimación del número de filas que coincidirán con una cláusula LIKE . Las estimaciones de cardinalidad pueden ser mejores y conducir a un plan más apropiado cuando se utiliza la sintaxis de corchete.

La respuesta a este estado de Conectar estados

No tenemos soporte para la estimación precisa de cardinalidad en presencia de caracteres de escape definidos por el usuario. Así que probablemente obtengamos una mala estimación y un mal plan. Consideraremos abordar este problema en una versión futura.

Un ejemplo

CREATE TABLE T ( X VARCHAR(50), Y CHAR(3000) NULL ) CREATE NONCLUSTERED INDEX IX ON T(X) INSERT INTO T (X) SELECT TOP (5) ''10% off'' FROM master..spt_values UNION ALL SELECT TOP (100000) ''blah'' FROM master..spt_values v1, master..spt_values v2 SET STATISTICS IO ON; SELECT * FROM T WHERE X LIKE ''%[%]%'' SELECT * FROM T WHERE X LIKE ''%/%%'' ESCAPE ''/'

Muestra 457 lecturas lógicas para la primera consulta y 50,003 para la segunda.