Запрос T-SQL, который возвращает только строчные результаты - PullRequest
7 голосов
/ 16 сентября 2011

У меня есть таблица с именем «КЛЮЧЕВЫЕ СЛОВА» со столбцом «ВХОД» VARCHAR (10). Можно ли будет извлечь из этой таблицы только строчные записи?

Например, таблица может выглядеть так:

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, поэтому я не очень разбираюсь в том, как ее настроить. У меня нет разрешения на запуск EXEC sp_help DatabaseName

Я буду ссылаться на эту страницу: http://blog.sqlauthority.com/2007/04/30/case-sensitive-sql-query-search/ это было интересно читать, потому что это похоже на то, что я ищу, но отличается тем, что человек, выполняющий запрос, знает, что он ищет.

Я хотел бы, чтобы ВСЕ записи были строчными.

Ответы [ 3 ]

12 голосов
/ 16 сентября 2011

Попробуйте это:

where Entry COLLATE Latin1_General_CS_AS = Lower(entry)
3 голосов
/ 16 сентября 2011

Это работает ...

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 голосов
/ 31 августа 2014

Нижеследующее сработало для меня в SSMS 2012. Я использовал нижнее, которое было опубликовано выше, но не COLLATE.

select Lower(varchar or text) from Table

моя кривая обучения с SQL немного умерла, но я все еще многому учусь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...