2013-10-25 4 views
2
작동하지

는이 TSQL 고려 : LIKE TSQL

declare @b varchar(100) 

set @b = 'BANK-41' 

IF @b LIKE 'BANK_%' 
BEGIN 
    print 'Wrong Matching' 
END 

가 왜 TSQL는 " BANK_"문자열 " BANK-"를 일치 하는가?

답변

2

"_"을 이스케이프 처리해야합니다. Like 문에 대한 특수 문자입니다. []로 묶을 수 있습니다.

LIKE (Transact-SQL)을 참조하십시오.

+0

도움 주셔서 감사합니다. 이것을 이해하는 것이 큰 도움이되었습니다. – user2921359

3

SQL Server의 밑줄은 와일드 카드 문자 용으로 예약되어 있다고 생각됩니다. 당신은 그것을 탈출해야합니다. 당신이 그것을 괄호 안에 넣을 수 있다고 생각합니다 :

%[_]% 
+0

도움 주셔서 감사합니다. 이것을 이해하는 것이 큰 도움이되었습니다. – user2921359

1

:

이 페이지를 참조하십시오

'BANK [_] %'

SELECT 
    x.Col1, 
    CASE WHEN x.Col1 LIKE 'BANK_%' THEN 1 ELSE 0 END AS Test#1, 
    CASE WHEN x.Col1 LIKE 'BANK\_%' ESCAPE '\' THEN 1 ELSE 0 END AS Test#2 
FROM (
    SELECT 'BANK-41' UNION ALL 
    SELECT 'BANK_41' 
) x(Col1); 

결과 :

Col1 Test#1  Test#2 
------- ----------- ----------- 
BANK-41 1   0 
BANK_41 1   1