2011-09-16 6 views
7

"KEYWORDS"라는 테이블에 VARCHAR (10)의 "ENTRY"라는 열이 있습니다. 해당 테이블에서 소문자 항목 만 검색 할 수 있습니까?소문자 만 반환하는 T-SQL 쿼리

ENTRY 
=========== 
SearchString 
Searchstring 
searchstring 
SEARCHSTRING 

을 그리고와 비슷한 쿼리 실행하기를 원하는 :

예를 들어, 테이블은 다음과 같을 수

SELECT ENTRY FROM KEYWORDS WHERE ENTRY <condition to retun only the lowercase entry> 

어디 위의 결과 searchstring

그리고이를 수행 할 수 있으면 다음에 ProperCase 항목 만 검색 할 수 있기를 원합니다. 이것은 호스팅 된 SQL Server 2005 데이터베이스 GoDaddy.com 호스팅에 대한 구성 방법에 대해 많이 알지 못합니다. http://blog.sqlauthority.com/2007/04/30/case-sensitive-sql-query-search/ 읽기 흥미로웠다는 내가 무엇을 찾고 유사하지만 다른 쿼리를 실행하는 사람이 무엇을 알고 있기 때문에 : 나는이

내가이 페이지를 참조합니다

가 EXEC sp_help는 데이터베이스 이름을 실행할 수있는 권한이 없습니다 그들은 찾고 있습니다.

소문자 인 모든 항목을 원합니다.

답변

12

이 시도 :

where Entry COLLATE Latin1_General_CS_AS = Lower(entry) 
+2

내 답변보다 좋고 아마도 더 빨리 터치하십시오. –

+0

감사합니다. 그것은 잘 작동합니다. – ONDEV

3

이 작동 ...

create table #t (entry varchar(10)) 
insert #t values ('hello'), ('Hello'), ('HELLO') 

select * from #t where cast(entry as varbinary(max)) = cast(LOWER(entry) as varbinary(max)) 

/* 
entry 
---------- 
hello 
*/ 
+0

감사합니다. 그러나 @Ramy는 짧은 버전이지만 감사합니다! – ONDEV

0

는 아래 나는 COLLATE를 위에 게시하지만되지 않은 낮은 사용 SSMS 2012 년 나를 위해 일했다.

select Lower(varchar or text) from Table 

SQL을 사용한 나의 학습 곡선은 약간 죽었지 만 나는 여전히 많은 것을 배우고있다.

+1

이것은 실제로 정확하지 않습니다. - 소문자로 저장되지 않은 경우에도 반환 된 내용은 소문자로 강제됩니다. OP는 소문자로 저장된 레코드를 찾고있었습니다. – Ramy

+0

내가 오해했을 수도 있습니다. 어떤 데이터가 쿼리되는지에 관계없이 결과가 소문자가되어야한다고 생각했습니다. TableName에서 하위 (레코드)를 선택하십시오. –