Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL Server

SQL Server의 LIKE 조건

SQL Server(Transact-SQL)의 LIKE 조건을 사용하면 패턴을 일치시키는 데 사용되는 SELECT, INSERT, UPDATE 및 DELETE 문의 WHERE 절에 와일드카드를 사용할 수 있습니다.

구문 LIKE 조건

 'biểu thức' LIKE 'mẫu' [ ESCAPE 'Escape_Character' ] 

변수 이름 또는 변수 값

표현식

열 또는 정보 필드와 같은 문자 표현.

양식

문자 형식에는 대조 샘플이 포함됩니다. 샘플은 아래 표에서 선택할 수 있습니다.

대표적인 기호 Explain% 임의의 길이에 대한 문자열 찾기(길이 0 포함) _ [^] 문자에 포함되지 않은 문자를 찾기 위해 [^] 문자 찾기(예:[ ^ abc]는 a가 아닌 모든 문자를 찾습니다. b 또는 c)

이스케이프 문자

옵션. 일시적으로 건너뛰기 문자로 변환되어 % 또는 _와 같은 문자가 문자 그대로(상수 형태로) 사용되지만 특수 문자로 사용되지 않는지 확인할 수 있습니다.

예:와일드카드 사용%

예를 들어 문자 'B'로 시작하는 직원을 찾는 등 SQL Server의 LIKE 조건에서 와일드카드% 사용

  S ELECT * 
FROM nhanvien
WHERE ho LIKE 'B%';

아래 예와 같은 문자열에 % 문자를 사용할 수 있습니다.

  SELE CT * 
FROM nhanvien
WHER ho LIKE '%0%';

문자 'o'가 포함된 직원에 대한 결과입니다.

예:와일드카드 사용 _

문자 _는 1자(길이는 1) 검색에만 사용됩니다.

  S ELECT * 
FROM nhanvien
WHERE ho LIKE 'Ad_m';

이 예에서 반환된 결과는 4글자 이름을 가진 직원입니다. 여기서 처음 두 글자는 'Ad'이고 마지막 글자는 'm'입니다. 예:Adam, Adem, Adim, Adom .

이것은 또 다른 예입니다.

 SELECT * 
FROM nhanvien
WHERE so_nhanvien LIKE '123_';

4자리 중 3자리에 불과한 직원 수를 찾고 있습니다. 위의 예에서 반환된 결과는 10개의 레코드를 포함하고 누락된 값은 0에서 9까지입니다:1230, 1231, 1232 .

예:와일드카드 [] 사용

대괄호로 묶인 것은 패턴과 일치하는 원하는 문자입니다.

 SELECT * 
FROM nhanvien
WHERE ten LIKE 'Sm[iy]th';

이 예에서 반환된 결과는 이름에 5개의 글자가 있는 직원입니다. 그 중 처음 두 글자는 'Sm'이고 마지막 두 글자는 'th'이고 가운데는 문자는 'i' 또는 'y'일 수 있습니다. 따라서 결과는 Smith 또는 Smyth일 수 있습니다.

예:와일드카드 [^] 사용

대괄호 안에 있는 것은 패턴과 일치시키고 싶지 않은 문자입니다.

  S ELECT * 
FROM nhanvien
WHERE ten LIKE 'Smy[^iy]th';

결과적으로 사원 이름은 5글자이며, 처음 두 글자는 'Sm', 마지막 두 글자는 'th', 중간 글자는 ' 나'도 아니고 '야'도 아니다. 결과는 Smath, Smeth가 될 수 있습니다.

예:NOT 연산자 사용

SQL Server에서 와일드카드와 함께 NOT 연산자를 사용하는 방법입니다. LIKE 조건으로 'B'자로 시작하지 않는 사원 성을 찾을 수 있습니다.

  SE LECT * 
FROM nhanvien
WHERE ho NOT LIKE 'B%';

LIKE 조건 앞에 NOT 연산자를 설정하면 'B'로 시작하지 않는 직원 가족을 찾습니다.

예:문자를 사용하여 이스케이프 문자 건너뛰기

특수 문자를 상수 값으로 사용하려는 경우 특수 문자를 오해하지 않도록 패턴을 비교할 때 건너뛰기 문자를 사용하는 것이 중요합니다.

예를 들어 a% 또는 a_ 문자를 검색하려는 경우

문자만 1자(길이는 1)로 정의할 수 있습니다.

  SELEC T * 
FROM nhanvien
WHERE secret_hint LIKE '123!%455' ESCAPE '!';

이 명령은 secret_hint가 123% 455인 직원을 반환합니다. % 문자는 더 이상 이전 의미로 사용되지 않고 일반 문자로 사용됩니다.

더 복잡한 예입니다.

  SELE CT * 
FROM nhanvien
WHERE secret_hint LIKE 'H %!%' ESCAPE '!';

LIKE 조건의 반환 결과는 secret_hint가 있는 직원이 'H'로 시작하고 '%'로 끝나는 'Help%'와 같은 것입니다.

LIKE 조건에서 전체 문자 _와 함께 무시 문자를 사용할 수 있습니다.

  SEL ECT * 
FROM nhanvien
WHERE secret_hint LIKE 'H%!_' ESCAPE '!';

이 예는 'Help_'와 같이 secret_hint가 'H'로 시작하고 '_'로 끝나는 직원을 반환합니다.