2016-08-19 3 views
1

영문자 (즉, A-Z와 a-z 포함)의 값을 반환하는 BETWEEN 매개 변수를 만들고 싶습니다. 두 개의 BETWEEN 절을 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 당신은대소 문자 간의 SQL

WHERE UPPER(TRIM(fieldname)) BETWEEN 'A' and 'Z' 

이 느려집니다

WHERE UPPER(fieldname) BETWEEN 'A' and 'Z' 

또는

WHERE UCASE(fieldname) BETWEEN 'A' and 'Z' 

당신이 어떤 성가신 공간을 없애 할 수 있습니다 사용하고있는 플랫폼 말을하지 않습니다

+2

비교 대상에 대해 위쪽 또는 아래쪽 (또는 UCASE 또는 LCASE)을 수행하십시오. – Hogan

+0

이 RDBMS는 무엇입니까? 태그를 추가하여 mysql, postgresql, sql-server, oracle 또는 db2 중 어느 것을 사용하는지 지정하십시오. –

답변

2

, 함수에서 필드 이름을 사용하면 인덱스에서 fieldname을 사용할 수 없습니다. 따라서 우리는 테이블 스캔을 강제합니다. 즉, 필드 이름이 인덱싱되고 테이블에 몇 개의 행이 있으면 두 개 이상의 행과 an 또는가 더 빠를 것입니다.