![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать группировку ечувствительной к регистру?
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, приведенные к нижнему (или верхнему) регистру, и группировать по этому полю.