Compartir a través de


_ (Carácter comodín : coincide con un carácter) (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLBase de datos SQL en Microsoft Fabric

Use el carácter _ de subrayado para que coincida con cualquier carácter único en una operación de comparación de cadenas que implique la coincidencia de patrones, como LIKE y PATINDEX.

Examples

Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad.

A. Ejemplo básico

En el ejemplo siguiente se devuelven todos los nombres de base de datos que comienzan por la letra m y tienen d como la tercera letra. El carácter de subrayado especifica que el segundo carácter del nombre puede ser cualquier letra. Las bases de datos model y msdb cumplen este criterio, La base de datos master no lo cumple.

SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';

Este es el conjunto de resultados.

name
-----
model
msdb

Es posible que tenga bases de datos adicionales que cumplan estos criterios.

Puede usar varios caracteres de subrayado para representar varios caracteres. Cambiar los LIKE criterios para incluir dos caracteres 'm__% de subrayado incluye la master base de datos en el resultado.

B. Ejemplo más complejo

En el ejemplo siguiente se usa el _ operador para buscar todas las personas de la Person tabla, que tienen un nombre de tres letras que termina en an.

SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;

C. Escape del carácter de subrayado

En el ejemplo siguiente se devuelven los nombres de los roles fijos de base de datos como db_owner y db_ddladmin, pero también devuelve el usuario dbo .

SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';

El carácter de subrayado de la tercera posición de carácter se toma como carácter comodín y no filtra solo las entidades de seguridad a partir de las letras db_. Para escapar del carácter de subrayado, escríbalo entre corchetes [_].

SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';

Ahora se excluye el usuario dbo.

Este es el conjunto de resultados.

name
-------------
db_owner
db_accessadmin
db_securityadmin
...