SQL Server Escape un guion bajo
¿Cómo puedo escapar del carácter de subrayado?
Estoy escribiendo algo como la siguiente cláusula where y quiero poder encontrar entradas reales con _d al final.
Where Username Like '%_d'
3 answers
Referencia de T-SQL para LIKE for SQL Server 2000:
Puede usar los caracteres coincidentes del patrón comodín como caracteres literales. Para usar un carácter comodín como 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'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-08 11:59:36
Obviamente la solución @Lasse es correcta, pero hay otra manera de resolver el problema: El operador T-SQL LIKE
define la cláusula opcional ESCAPE, que le permite declarar un carácter que escapará al 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 '^';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-02 14:20:40
Estas soluciones tienen sentido. Desafortunadamente, ninguno funcionó para mí como esperaba. En lugar de tratar de molestar con él, me fui con un trabajo alrededor:
select * from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-01 19:50:03