Condividi tramite


_ (carattere jolly - corrisponde a un carattere) (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureDatabase SQL in Microsoft Fabric

Usare il carattere _ di sottolineatura per trovare la corrispondenza con qualsiasi carattere singolo in un'operazione di confronto di stringhe che implica la corrispondenza dei criteri, ad esempio LIKE e PATINDEX.

Examples

Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.

A. Esempio di base

L'esempio seguente restituisce tutti i nomi di database che iniziano con la lettera m e la cui terza lettera è la lettera d. Il carattere di sottolineatura specifica che il secondo carattere del nome può essere qualsiasi lettera. I database model e msdb soddisfano questi criteri. Il database master non li soddisfa.

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

Il set di risultati è il seguente.

name
-----
model
msdb

Potrebbero essere presenti database aggiuntivi che soddisfano questi criteri.

È possibile usare più caratteri di sottolineatura per rappresentare più caratteri. La modifica dei LIKE criteri in modo da includere due caratteri 'm__% di sottolineatura include il master database nel risultato.

B. Esempio più complesso

Nell'esempio seguente viene usato l'operatore _ per trovare tutte le persone nella Person tabella, con un nome di tre lettere che termina con an.

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

C. Escape del carattere di sottolineatura

Nell'esempio seguente vengono restituiti i nomi dei ruoli predefiniti del database, ad esempio db_owner e db_ddladmin, ma restituisce anche l'utente dbo .

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

Il carattere di sottolineatura nella terza posizione del carattere viene assunto come carattere jolly e non filtra solo le entità a partire dalle lettere db_. Per eseguire l'escape del carattere di sottolineatura, racchiuderlo tra parentesi quadre [_].

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

Ora l'utente dbo è escluso.

Il set di risultati è il seguente.

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