_ (Curinga – corresponde a um caractere) (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Use o caractere sublinhado _ para corresponder a qualquer caractere único em uma operação de comparação de cadeia de caracteres que envolva correspondência de padrões, como LIKE
e PATINDEX
.
Exemplos
A: Exemplo simples
O exemplo a seguir retorna todos os nomes de banco de dados que começam com a letra m
e têm a letra d
como a terceira letra. O caractere sublinhado especifica que o segundo caractere do nome pode ser qualquer letra. Os bancos de dados model
e msdb
atendem a esse critério. O banco de dados master
não atende.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Veja a seguir o conjunto de resultados.
name
-----
model
msdb
Pode haver bancos de dados adicionais que atendem a esses critérios.
Você pode usar vários sublinhados para representar vários caracteres. Alterar o critério LIKE
para incluir dois sublinhados 'm__%
, inclui o banco de dados mestre no resultado.
B: Exemplo mais complexo
O exemplo a seguir usa o operador _ para localizar todas as pessoas na tabela Person
que têm um nome de três letras que termina com an
.
-- USE AdventureWorks2022;
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C: usando escape para o caractere sublinhado
O exemplo a seguir retorna os nomes das funções de banco de dados fixas como db_owner
e db_ddladmin
, mas também retorna o usuário dbo
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
O sublinhado na posição do terceiro caractere é interpretado como um caractere curinga e não está filtrando somente entidades de segurança que começam com as letras db_
. Para usar um escape no caractere sublinhado coloque-o entre colchetes [_]
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';
Agora o usuário dbo
foi excluído.
Veja a seguir o conjunto de resultados.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...
Confira também
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Curinga - Caracteres a serem correspondidos)
[ ] (Curinga – Caracteres a serem correspondidos)
[^] (Curinga – Caracteres a não serem correspondidos)