|
И снова сортировка
|
|||
---|---|---|---|
#18+
Добрый день, заранее извиняюсь за повторение по поводу сортировки но не нашел по форуму то что искал. Есть таблица с полем NOMER - char(10) состоит из первые четыре символа абривиатура определенной группы потом дефис и 4 цифры Результат который выдает мне сервер типа такого RASH-1 RASH-10 ... RASH-2 RASH20 .... RASH-30 и т.д. Помогите плз составить запрос что бы результат был таким: RASH-1 RASH-2 RASH-3 .... RASH-10 .... RASH-20 и т.д. Заранее благодарен (а также прилагаю базу с такой табличкой) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 11:59 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 12:02 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Виноват! Поперек парАвоза бегу... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 12:03 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Sergiuz S> Помогите плз составить запрос что бы результат был таким: S> RASH-1 S> RASH-2 S> RASH-3 S> .... S> RASH-10 S> .... S> RASH-20 S> и т.д.не запрос надо переписывать, а хранить правильно Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 12:07 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
1. Использовать UDFs которые "выкусывают" префикс и число из вашей строки. В запросе сортировать по двум частям - префикс и число. Вместо UDFs можно ХП. 2. Хранить вместо "RASH-1" - "RASH-01". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 12:37 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
1.хранить и показывать как RASH-00001 RASH-00002 ... RASH-99999 тогда обычный ордер бай и вуаля. 2. order by substr(NOMER,1,5), cast(substr(NOMER,6,4) as integer) 3. сделать правильно: номер в одном поле, префикс в другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 12:44 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky3. сделать правильно: номер в одном поле, префикс в другом. А мне что-то каатся, что это всё равно -->(_!_)--> Мне каатся, что вхождение в некоторые группы по науке принято было хранить в виде отношения "группы" с атрибутикой, в том числе и полным наименованием, и аббревиатурным если надо, и референса на неё от входящих объектов. Ну или m:n. И джойниться и сортировать по чём хош типа посегментно. Но я понимаю, нынче это не модно - не к чему будет прикручивать машину Тьюринга (С). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 13:48 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
2 Sergiuz присоединюсь к Пьяный Винни-Пух Первую нормальную форму ещё никто не отменял. Скорее всего её применение в этом случае оправдано. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 14:06 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Пьяный Винни-Пух Ivan_Pisarevsky3. сделать правильно: номер в одном поле, префикс в другом. А мне что-то каатся, что это всё равно -->(_!_)--> Мне каатся, что вхождение в некоторые группы по науке принято было хранить в виде отношения "группы" с атрибутикой, в том числе и полным наименованием, и аббревиатурным если надо, и референса на неё от входящих объектов. Ну или m:n. И джойниться и сортировать по чём хош типа посегментно. Но я понимаю, нынче это не модно - не к чему будет прикручивать машину Тьюринга (С).Я нечто подобное ликвидировал, когда выбрасывал старинную прогу на фоксбэйзе у себя на складе, как-то рубанул ея под корешок и дело с концом. На место таких составных естественно-искусственных ключей просто пришел трехуровневый справочник и все стало чинно-благородно, без избыточности и необходимости сортировок/группировок по кускам полей. Посоветовать автору поменять всю структуру таблиц и привести в похожесть с НФБК? Ну можно, конечно, только мне кажется он будет от этого не в восторге... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 14:07 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Седов А.2 Sergiuz присоединюсь к Пьяный Винни-Пух Первую нормальную форму ещё никто не отменял. Скорее всего её применение в этом случае оправдано. с одной стороны согласен что оно оправдано только вот вопрос но при это возрастает количество работы к пример поиск товара по номеру мне придется вырезать из строки номера аббревиатуру и номер делать чуть ли не двойную работу только по поиску. А работа с номером товара у меня чуть ли не в каждой форме приложения. У меня есть еще один вопрос на одном из топиков форума я нашел такой вариант select * from tbl order by substring ('00000' || n from (char_length(n)) for 7) не подскажите структуру функции substring в firebird а то я что то мало понял из справки на ibase.ru Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 15:53 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Sergiuz с одной стороны согласен что оно оправдано только вот вопрос но при это возрастает количество работы к пример поиск товара по номеру мне придется вырезать из строки номера аббревиатуру и номер делать чуть ли не двойную работу только по поиску. А работа с номером товара у меня чуть ли не в каждой форме приложения. Эт ты сейчас делаеш двойную работу!!!!!!! И это как надо читать, дабы понять ровно наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 16:15 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
2 Sergiuz Если Вы точно знаете, что денормализация оправдана(в чём я для справочника товаров ОЧЕНЬ сильно сомневаюсь) то нормального выхода нет. Либо добавляйте лидирующие нули, либо заводите дополнительное поле для сортировки. Однако, я не вижу причины не дать пользователю конструкцию вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
За такой подход говорит ещё и то, что за группой могут быть закреплены характеристики посложнее трёх букв(например место хранения, температурный режим, порядок упаковки при отгрузке и ещё куча всякой хрени, которая теоретически может понадобиться при поиске по товару). И тогда вашей схеме придёт маленький пушной зверёк из шести букв : -)) Не хотите в две таблицы складывайте в одну, но с дополнительным полем, которое позволит узнать, что это товар или группа. Это те же зайцы. Кому как больше нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 16:22 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
2 Седов А. Спасибо за советы и понимания (в не которых вопрос я очень много допускал ошибки, потому как вторые сутки не сплю) На сколько как для меня лучшим вариантом будет добавить дополнительное поле Спасибо еще Раз ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2007, 17:02 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
SergiuzУ меня есть еще один вопрос на одном из топиков форума я нашел такой вариант select * from tbl order by substring ('00000' || n from (char_length(n)) for 7) не подскажите структуру функции substring в firebird а то я что то мало понял из справки на ibase.ru Заранее спасибо Сейчас попробовал это вариант - работает!!!! Так что буду юзать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 16:29 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
доку почитай, про lpad например, партизанин-некрофил. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 16:50 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Wild PointerТак что буду юзать.И еще один попробуйте (для ФБ 2.5). DDL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Код: sql 1.
Result:Srash-1rash-2rash-3RAsh-5RAsh-11rash-20RAsh-25rash-30rash-100RAsh-110RAsh-111rash-300 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:46 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Таблоид, + 500! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 23:37 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Встала похожая проблема, но поле не utf8, а win1251. В этом случае как правильно указать collaction для данной кодировки ?! Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2015, 12:10 |
|
И снова сортировка
|
|||
---|---|---|---|
#18+
Просьба не убивать сразу! create collation myCollW for win1251 from unicode case insensitive 'NUMERIC-SORT=1'; НО, при попытке выполнить - выдает ошибку, что win1251 не определен?! Люди памагите! ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2015, 12:43 |
|
|
start [/forum/topic.php?fid=40&msg=34729074&tid=1562558]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 157ms |
0 / 0 |