Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка и SQL [D7, MSSQL]


ziArt ©   (2009-07-14 13:01:00) 

База MS SQL 2000
Delphi 2006

Компоненты Ado табл и квери

выполняю запрос

SELECT *
FROM tbZava, tbFak
WHERE tbZava.idFak*=tbFak.idFak
ORDER by vcKOdOsSprav


как результат

6Б-1
6Б-10
6Б-11
...
6Б-19
6Б-2
6Б-20

что сделать что бы нормально шло после сортировки
6Б-1
6Б-2
....
6Б-10
6Б-11
...
6Б-19

6Б-20


ziArt   (2009-07-15 10:42:00) [1]

Проблема в том что первіх символов может быть и не 2 но структура
6Х-число, где Х может догодить до 4 симоволов
сохраняется.
общую идею я понял, спасибо, будем пробовать


sniknik   (2009-07-14 13:33:00) [2]

а вообще поле бы разбить на 2, строковое и числовое, тогда избежишь проблем типа ввода туда чего то нестандартного.
ну или формировать номер как для документов обычно, с фикстрованной длинной поля и дополнением нулями, типа
6Б-000001
6Б-000002
....
6Б-000010
6Б-000011
сортировалось бы как желается.


sniknik   (2009-07-14 13:26:00) [3]

ну если все только так как написано, а не [2]
то написать
ORDER by Left(vcKOdOsSprav, 2), Cast(SUBSTRING (vcKOdOsSprav, 4, 10) AS Int)

причем первая часть с Left в сортировке именно для приведенных данных лишняя.


Anatoly Podgoretsky   (2009-07-14 13:11:00) [4]

where и вот здесь или многоэтажная функция или капут.
И с чего ты решил, что 6Б-1 это число, а что ты будешь делать для 6B-1a/b17 и 1B и 11Б


Виталий Панасенко(дом)   (2009-07-14 13:06:00) [5]

а это и есть нормально.. учи, что такое код символа и какие коды каким символам соответствуют, тогда поймешь


Наверх

Титульная страница Поиск, карта сайта Написать письмо