Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2010, 19:26   #1
San4o
Пользователь
 
Регистрация: 26.08.2009
Сообщений: 23
По умолчанию Сортировка столбца с цифрами

Всем доброго времени суток

Я новичек в написание запросов на SQL. Много не понимаю. Буду рад любой помощи.
Есть столбец, в котором
строка 1
строка 5
строка 27
строка 3
строка 33

Как с помощью чего отсортировать с учетом цифр после слова?

п.с. смотрел поиск этого вопроса и похожая тема есть. Там предлагается решение с функцией. но когда запускал со своими названиями говорит, что функция должна быть первой, а потом 'invalid syntax near SELECT'. какой должен быть синтаксис у функции.
San4o вне форума Ответить с цитированием
Старый 19.01.2010, 19:42   #2
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

select * from t_table order by необходимое поле
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 19.01.2010, 20:07   #3
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а какая субд?
смотри в сторону фунок substr/substring
soleil@mmc вне форума Ответить с цитированием
Старый 20.01.2010, 02:21   #4
San4o
Пользователь
 
Регистрация: 26.08.2009
Сообщений: 23
По умолчанию

SQL 2000. Еще забыл в столбце могут быть просто слова. т.е.
стр 1
стр 20
стр 3
клмн
опрст
ззз
ууу 1
ннн 2

Какой в этом случае запрос должен быть?
San4o вне форума Ответить с цитированием
Старый 20.01.2010, 15:15   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

головоломка
в Оракле есть замечательная функа - translate, с ее помощью можно удалить любой набор символов (см. доку)
Код:
with
  t as (
  select 'стр 1' str from dual union all
  select 'стр 21 wer' from dual union all
  select 'стр 3' from dual union all
  select 'стр 20' from dual union all
  select 'стр 33' from dual union all
  select 'стр 54' from dual union all
  select 'стр 120' from dual union all
  select 'стр ''2' from dual union all
  select 'werewr' from dual union all
  select 'svsdfvdf g dfgdgd ' from dual union all
  select 'стр 12' from dual union all
  select 'bvnvbn bnv bnv nbv' from dual union all
  select 'kjnkjnkmn,' from dual
  )
  
select 
  str,
  substr(str, 5) str_2,
  to_number(translate(str, 'абвгдеёжзийклмнопрстуфхцчшщьъыэюя .,`''''"!#$%^&*()-_=+@:;\/?[]{}|abcdefghijklmnopqrstuvwxyz', '1234567890')) str_3
from t
order by 3


апдейт:

если не заморачиваться на такие специфические функи (есть ли аналог в мсскл?!) и не думать о магии исходных данных, то скорее всего придется писать собственную функу, которая будет обрабатывать входную строку и возвращать первые встретившиеся цифры (до конца строки или до первого символа "не цифры") или ноль (если цифр ваще не попалось).

Последний раз редактировалось soleil@mmc; 20.01.2010 в 18:53. Причина: дополнения по теме
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с цифрами в текстовых строках Azz100 Microsoft Office Excel 4 16.12.2009 15:49
Отступ между цифрами в консоле Golovastik Общие вопросы C/C++ 4 15.07.2009 23:24
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
Названия столбцов стали цифрами. Flake Microsoft Office Excel 2 06.09.2008 16:42
Работа с натуральными цифрами в Делфи Cartman18 Помощь студентам 4 16.04.2008 14:38