다음을 통해 공유


_ (와일드카드 - 한 문자 일치) (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

밑줄 문자를 _ 사용하여 문자열 비교 작업에서 패턴 일치와 같은 LIKEPATINDEX단일 문자를 일치시킵니다.

Examples

이 문서의 코드 샘플은 AdventureWorks2022 또는 AdventureWorksDW2022 샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.

A. Basic example

다음 예제에서는 문자 m로 시작하고 문자 d를 세 번째 문자로 가진 모든 데이터베이스 이름을 반환합니다. 밑줄 문자는 이름의 두 번째 문자가 임의의 문자일 수 있음을 지정합니다. modelmsdb 데이터베이스는 이 조건을 충족합니다. 데이터베이스는 master 그렇지 않습니다.

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

결과 집합은 다음과 같습니다.

name
-----
model
msdb

이 조건을 충족하는 추가 데이터베이스가 있을 수 있습니다.

여러 개의 밑줄을 사용하여 여러 문자를 나타낼 수 있습니다. 두 개의 LIKE'm__% 줄을 포함하도록 조건을 변경하면 결과에 데이터베이스가 master 포함됩니다.

B. 더 복잡한 예제

다음 예제에서는 연산자를 _ 사용하여 테이블에서 끝나는 세 글자 이름을 가진 모든 사람을 Person 찾습니다 an.

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

C. 밑줄 문자 이스케이프

The following example returns the names of the fixed database roles like db_owner and db_ddladmin, but it also returns the dbo user.

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

세 번째 문자 위치의 밑줄은 와일드카드로 사용되며 문자 db_로 시작하는 보안 주체에 대해서만 필터링되지 않습니다. 밑줄을 이스케이프하려면 대괄호로 묶습니다 [_].

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

dbo 이제 사용자가 제외됩니다.

결과 집합은 다음과 같습니다.

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