Compartir vía


_ (comodín, coincidir un carácter) (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Use el carácter de subrayado _ para hacer coincidir todos los caracteres de una operación de comparación de cadenas que implica una coincidencia de patrón como LIKE y PATINDEX.

Ejemplos

A: Ejemplo sencillo

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

Puede tener bases de datos adicionales que cumplan este criterio.

Puede usar varios caracteres de subrayado para representar varios caracteres. Al cambiar el criterio LIKE para incluir dos caracteres de subrayado 'm__% se incluye la base de datos maestra en el resultado.

B: Ejemplo más complejo

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

-- USE AdventureWorks2022;
  
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 se devuelve el usuario dbo.

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

El carácter de subrayado en la tercera posición de carácter se toma como un carácter comodín y no filtra solo las entidades de seguridad que empiezan con las letras db_. Para incluir el carácter de subrayado entre secuencias de escape, inclúyalo 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
...

Consulte también

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Comodín - Caracteres para coincidir)
[ ] (Comodín - Caracteres para coincidir)
[^] (Comodín - Caracteres para no coincidir)