Partilhar via


_ (Curinga - corresponder a um caractere) (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Use o caractere _ de 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.

Examples

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

A. Exemplo básico

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. As model bases de dados e msdb cumprem estes critérios. A master base de dados não.

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

Aqui está o conjunto de resultados.

name
-----
model
msdb

Você pode ter bancos de dados adicionais que atendam a esses critérios.

Você pode usar vários sublinhados para representar vários caracteres. Alterar os LIKE critérios para incluir dois sublinhados 'm__% inclui o master banco de dados no resultado.

B. Exemplo mais complexo

O exemplo a seguir usa o _ operador para localizar todas as pessoas na Person tabela, que têm um nome próprio de três letras que termina em an.

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

C. Fuja do 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 é tomado como um curinga, e não é filtrado apenas para os principais começando com as letras db_. Para escapar ao sublinhado, coloque-o entre parênteses [_].

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

Agora o dbo usuário está excluído.

Aqui está o conjunto de resultados.

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