我有一个名为“KEYWORDS”的表,其中一列名为“ENTRY”VARCHAR(10)。是否可以仅从该表中检索小写条目?
例如,表格可能如下所示:
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数据库,所以我不太了解它的配置方式。我无权运行EXEC sp_help DatabaseName
我将参考此页面: http://blog.sqlauthority.com/2007/04/30/case-sensitive-sql-query-search/ 这很有趣,因为它与我正在寻找的相似但不同之处在于运行查询的人知道他们在寻找什么。
我希望所有小写的条目。
答案 0 :(得分:12)
试试这个:
where Entry COLLATE Latin1_General_CS_AS = Lower(entry)
答案 1 :(得分: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
*/
答案 2 :(得分:0)
以下在SSMS 2012中为我工作。我使用了上面发布的Lower而不是COLLATE。
select Lower(varchar or text) from Table
我的SQL学习曲线已经消失了一点但我还在学习很多东西。