2011-09-16 12 views
7

VARCHAR(10)の「ENTRY」という名前の列を持つ「KEYWORDS」という名前のテーブルがあります。そのテーブルから小文字のエントリだけを取り出すことは可能でしょうか?小文字の結果のみを返すT-SQLクエリ

例えば、テーブルは次のようになります。

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

そして私はに似たクエリを実行できるようにしたいと思います:

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

どこ上記の結果searchstring

これを行うことができれば、次にProperCaseエントリだけを取得できるようにしたいと考えています。これはGoDaddy.comのホストされたSQL Server 2005データベースのホストなので、設定方法についてはあまり知られていません。 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

はSSMS 2012年に私のために働いていた私は、COLLATEの上ではなく、投稿されたその下を使用しました。

私のSQLの学習曲線はちょっと枯れましたが、私はまだ多くのことを学んでいます。

+1

これは実際には正しくありません。小文字で保存されていなくても、返される内容は小文字に強制されます。 OPは、小文字として保存されたレコードを探していました。 – Ramy

+0

私は誤解しているかもしれません。どのデータが照会されていても結果は小文字にする必要があると私は考えました。 TableNameから下位(レコード)を選択 –

関連する問題