![]() |
Задачка на пару чашек чая ;) (MSSQL) Пусть в таблице "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-й символы строк? |
select max(substring(num,8,2)) from x Это если точно знаем, что число будет двузначным, и находится будет с 8-го символа Если необходимо найти позицию символа - то CHARINDEX('<символ>', num) => select max(substring(num,charindex("_",num)+1,2)) Или ещё более универсально - используя регульники |
Это не задачка. Это диагноз проектировщика такой базы. |
Текущее время: 17:34. Часовой пояс GMT +3. |