special not escape characters sql-server

not - SQL Server Escape un guión bajo



not like sql server (5)

Estas soluciones tienen mucho sentido. Lamentablemente, ninguno de los dos trabajó para mí como se esperaba. En lugar de tratar de molestarlo, me puse a trabajar:

select * from information_schema.columns where replace(table_name,''_'',''!'') not like ''%!%'' order by table_name

¿Cómo puedo escapar del carácter de subrayado?

Estoy escribiendo algo como lo siguiente en la cláusula where y deseo poder encontrar entradas reales con _d al final.

Where Username Like ''%_d''


Esto funcionó para mí, solo usa el escape ''%/_%''


Ninguno de estos funcionó para mí en SSIS v18.0, así que me gustaría hacer algo como esto:

WHERE CHARINDEX(''_'', thingyoursearching) < 1

..donde estoy intentando ignorar cadenas con un guión bajo en ellas. Si quieres encontrar cosas que tengan un guión bajo, simplemente dale la vuelta:

WHERE CHARINDEX(''_'', thingyoursearching) > 0


Obviamente, la solución @Lasse es correcta, pero hay otra manera de resolver su problema: el operador T-SQL LIKE define la cláusula ESCAPE opcional, que le permite declarar un carácter que escapará del siguiente carácter al patrón.

Para su caso, las siguientes cláusulas WHERE son equivalentes:

WHERE username LIKE ''%[_]d''; -- @Lasse solution WHERE username LIKE ''%$_d'' ESCAPE ''$''; WHERE username LIKE ''%^_d'' ESCAPE ''^'';


Referencia de T-SQL para LIKE para SQL Server 2000 :

Puede utilizar los caracteres de coincidencia de patrón de comodín como caracteres literales. Para usar un carácter comodín como un carácter literal, encierre el carácter comodín entre paréntesis. La tabla muestra varios ejemplos de uso de la palabra clave LIKE y los caracteres comodín [].

Para su caso:

... LIKE ''%[_]d''