0
- 29.07.2012 - 12:06
|
Пусть в таблице "X" есть поле "Num" типа String с набором данных: 01 04 06 12 15 Тогда запросом вида: SELECT Max(LPad(Num, 10, " ") FROM X; Получим максимальный номер. Теперь заменим данные столбца "Num" на следующие: АбВгД__01_БлаБлаБла АбВгД__04_БлаБлаБла АбВгД__06_БлаБлаБла АбВгД__12_БлаБлаБла АбВгД__15_БлаБлаБла т.е. нужные нам данные - это с 8-го по 9-й элемент строки. Вопрос - как теперь выбрать максимальный элемент, иными словами - как сравнивать только с 8-го по 9-й символы строк? | |
1
- 29.07.2012 - 12:30
|
ну так что нибудь типа substring есть в firebird и mssql думаю что и в других бд есть нечто подобное Другое дело что подход как то не очень это да. Imho лучше завести отдельное поле куда при добавлении и обновлении записи записывать этот номер, что бы не заниматься разбором строк, да и потом если позиция в строке будет меняться то тоже надо будет что то мутить, или полный анализ строки или где то хранить позицию. Ну в в том же FireBird можно для этого накатать udf. | |
2
- 29.07.2012 - 20:01
| 2 tcode: Да в том то и косяк - что структуру базы менять нельзя. Сделаю сабстирнг, спасибо. | |
| Интернет-форум Краснодарского края и Краснодара |