К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос по SQL

Гость
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: Да в том то и косяк - что структуру базы менять нельзя. Сделаю сабстирнг, спасибо.


К списку вопросов






Copyright ©, Все права защищены