_ (comodín, coincidir un carácter) (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Instancia administrada
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%';
El conjunto de resultados es el siguiente:
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
.
El conjunto de resultados es el siguiente:
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)