Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
밑줄 문자를 _
사용하여 문자열 비교 작업에서 패턴 일치와 같은 LIKE
PATINDEX
단일 문자를 일치시킵니다.
Examples
이 문서의 코드 샘플은 AdventureWorks2022
또는 AdventureWorksDW2022
샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.
A. Basic example
다음 예제에서는 문자 m
로 시작하고 문자 d
를 세 번째 문자로 가진 모든 데이터베이스 이름을 반환합니다. 밑줄 문자는 이름의 두 번째 문자가 임의의 문자일 수 있음을 지정합니다.
model
및 msdb
데이터베이스는 이 조건을 충족합니다. 데이터베이스는 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
...