![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможно ли сгруппировать записи без ограничивающих пробелов? [D7, XP]
DimonS © (2008-12-03 10:42:00)Добрый верер всем.
Есть такой запрос:
select Name
From Gas
group by Name
Работает нормально. Но есть одно НО.
Если в поле Name внесено две одинаковый на первый взгляд записи, которые отличаются лишь тем, что у одной из них в конце стоит пробел (от юзеров всего можно ожидать), то запрос вернет их как две разные.
Есть ли какой-то способ группировки, чтобы пробелы игнорировались? Т.е., например, "Хитачи" и "Хитачи " в выборке были одной строкой "Хитачи".
Да, база Access.
DimonS (2008-12-05 04:16:00) [1]
> Правильный$Вася (04.12.08 11:06) [11]
> Anatoly Podgoretsky © (04.12.08 11:07) [12]
Сделал уже :)
Вопрос закрыт.
Anatoly Podgoretsky (2008-12-04 11:08:00) [2]> Поросенок Винни-Пух (04.12.2008 9:07:10) [10]
> Тогда и не будет "от юзеров всего можно ожидать"
Будет, от юзеров всего можно ожидать
Anatoly Podgoretsky (2008-12-04 11:07:00) [3]> DimonS (04.12.2008 8:39:07) [7]
А в консоле один раз ввести команду удаления пробелов в голову не приходило?
Правильный$Вася (2008-12-04 11:06:00) [4]
> Теперь-то, естественно, при вводе новых данных пробелы обрезаются.
а в старых одноразово подрезать не судьба?
чем кроить отчет под левые данные...
Поросенок Винни-Пух (2008-12-04 09:07:00) [5]а в основную таблицу пишите ID, а не имя. Тогда и не будет "от юзеров всего можно ожидать"
Словно имя не может быть ключем и не может выбираться из справочника
DimonS (2008-12-04 08:45:00) [6]Сорри, все нашел.
Спасибо Сергей М., написал вместо
group by Trim(Name)
просто
group by Name,
отсюда и появлялась вторая строка в выборке. А так все работает.
Сергей М. (2008-12-04 08:45:00) [7]
> DimonS (04.12.08 08:39) [7]
А при
LTrim(RTrim(Name))
ситуация меняется ?
DimonS (2008-12-04 08:39:00) [8]
> Сергей М. © (03.12.08 10:49) [1]
> select Trim(Name)
> From Gas
> group by Trim(Name)
Попробовал сразу же. Почему-то группируются нормально с разными завершающими пробелами, но если есть слово с начинающимся пробелом - то в выборке оно стоит отдельно, хотя пробелов и нет в выборке.
> clickmaker © (03.12.08 11:06) [2]
> Правильный$Вася (03.12.08 11:53) [5]
Когда писалась программа (давно уже) некоторые отчеты даже не предполагались в планах, потому-то и появлялись ошибки. Теперь-то, естественно, при вводе новых данных пробелы обрезаются.
> Сергей М. © (03.12.08 11:11) [3]
>
> Гораздо интересней сначала понасоздавать кучу проблем, а
> потом их героически преодолевать)
Как ни странно, но иногда интересно :)
Правильный$Вася (2008-12-03 11:54:00) [9]> + поставить ограничение уникальности
на справочник [2] естественно
Правильный$Вася (2008-12-03 11:53:00) [10]
> Если в поле Name внесено две одинаковый на первый взгляд
> записи, которые отличаются лишь тем, что у одной из них
> в конце стоит пробел (от юзеров всего можно ожидать)
перед сохранением обрезать пробелы (в триггере, если таковые есть в акцессе, или на клиенте)
+ поставить ограничение уникальности
Sergey13 (2008-12-03 11:17:00) [11]> [0] DimonS (03.12.08 10:42)
> Есть ли какой-то способ группировки, чтобы пробелы игнорировались
А потом ты будешь сравнивать латинские буквы и русские. А потом "Хитачи" и "Классную тачку и с лампочками".
Сергей М. (2008-12-03 11:11:00) [12]
> справочник сделайте
Гораздо интересней сначала понасоздавать кучу проблем, а потом их героически преодолевать)
clickmaker (2008-12-03 11:06:00) [13]> Т.е., например, "Хитачи" и "Хитачи "
справочник сделайте
ID Name
1 Хитачи
2 Панасоник
...
а в основную таблицу пишите ID, а не имя. Тогда и не будет "от юзеров всего можно ожидать"
Сергей М. (2008-12-03 10:49:00) [14]select Trim(Name)
From Gas
group by Trim(Name)