Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать группировку ечувствительной к регистру?


Flatch ©   (2003-07-29 07:59:00) 

Есть таблица с полем F1, значения которого "abc" и "aBC". Я хочу сделать группировку по этому полю, но чтобы она не была чувствительна к регистру значений.
Т.е. если я пишу
SELECT F1 FROM T1 GROUP BY F1

То я получаю "abc" и "aBC", а хочу получить только "abc".

Как составить такой запрос или может какие настройки поковырять?


Savelan   (2003-07-30 05:13:00) [1]

В чем проблема? Сделай так!
SELECT UPPER(F1),COUNT(UPPER(F1)) FROM T1 GROUP BY UPPER(F1)


Zacho   (2003-07-29 08:45:00) [2]


> Flatch (29.07.03 08:38)

В Yaffil (а возможно и в FB, точно не помню) можно было бы сделать так:
SELECT UPPER(F1),COUNT(F1) FROM T1 GROUP BY UPPER(F1)
или так:
SELECT UPPER(F1),COUNT(F1) FROM T1 GROUP BY 1
В IB6, imho, - только дополнительным (возможно COMPUTED BY) полем.
А не стоит ли подумать о переходе с древнего и глючного IB6 на какой-либо клон (FB, Yaffil) ? Кроме группировки у них еще масса преимуществ перед IB6


Flatch   (2003-07-29 08:38:00) [3]

Ок, уточняю запрос:
SELECT F1,COUNT(F1) FROM T1 GROUP BY F1

Добавлять колонку мне не подходит совсем (у меня там есть еще куча колонок, по которым тоже нужно будет делать группировки).

А СУДБ - это Interbase6, но и в ФоксПро та же беда.


Zacho   (2003-07-29 08:28:00) [4]

Не совсем понятно, что именно тебе нужно. Запрос, который ты привел, смысла вообще не имеет, GROUP BY нужно только вместе с агрегатными функциями. И какая все-таки СУБД точно ?
А самое общее решение - добавить в таблицу дополнительное поле, в котором хранить значения поля F1, приведенные к нижнему (или верхнему) регистру, и группировать по этому полю.


Наверх

Титульная страница Поиск, карта сайта Написать письмо