Pregunta

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

Estoy escribiendo algo como la siguiente cláusula where y quiere ser capaz de encontrar entradas con _d al final.

Where Username Like '%_d'
¿Fue útil?

Solución

T-SQL de Referencia para el COMO para SQL Server 2000:

Usted puede utilizar el comodín de la coincidencia de patrones de caracteres como caracteres literales.Para utilizar un carácter comodín como un carácter literal, encierre el carácter comodín en los soportes.La tabla muestra varios ejemplos de la utilización de la palabra clave LIKE y los caracteres comodín [].

Para tu caso:

... LIKE '%[_]d'

Otros consejos

Obviamente @Lasse solución es correcta, pero no hay otra manera de resolver tu problema:T-SQL operador LIKE define el opcional ESCAPE la cláusula, que permite declarar un personaje que se escape el siguiente carácter en el 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 '^';

Estas soluciones totalmente de sentido.Por desgracia, tampoco funcionó para mí como era de esperar.En lugar de tratar problemas con ella, me fui con un trabajo en torno a:

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

Esto funcionó para mí, sólo tiene que utilizar el escape '%\_%'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top