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

Задачка на пару чашек чая ;) (MSSQL)

Гость
0 - 28.07.2012 - 19: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.08.2012 - 16:36
select max(substring(num,8,2)) from x
Это если точно знаем, что число будет двузначным, и находится будет с 8-го символа

Если необходимо найти позицию символа - то CHARINDEX('<символ>', num) => select max(substring(num,charindex("_",num)+1,2))

Или ещё более универсально - используя регульники
Гость
2 - 09.06.2014 - 19:16
Это не задачка. Это диагноз проектировщика такой базы.


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






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