|
|
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Нужен совет, кто-нибудь сталкивался? Есть два параметра по кторым нужно отсортировать данные в таблице. Сначала по номеру чертежа, затем по порядковому номеру ввода (дата). Проблема в том, что чертеж состоит из букв и цифр например А.1234 или Б-1234. Так вот, отсортировать нужно только по буквам (по алфавиту), а затем, после символа, уже по порядковому номеру. То есть если я ввожу так: 1) А-1234 2) А-1233 3) Я.12345 4) К-1234 5)Я.11111 В итоге должно получиться: А-1234 А-1233 К-1234 Я.12345 Я.11111 Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2016, 22:28 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Полный номер чертежа всегда соответствует формату буква-разделитель-цифры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2016, 23:51 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, как описываете , так и делайте... ORDER BY по строковым функциям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 01:40 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Akina, Да, именно. Либо через точку, либо через тире ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 07:07 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, order by left(field), substr(field,3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 07:12 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, возможно полезнее будет привести все к одному виду (выбрать один стандартный разделитель) UPDATE много сил и средств не затратит... и просто ORDER BY NumCherteg - это гораздо проще и эффективнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 08:08 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovвозможно полезнее будет привести все к одному виду (выбрать один стандартный разделитель)Вполне себе вариант. Но я бы посчитал разделение этого поля на два ещё более правильным. Заодно разделитель стандартизуется "сам по себе". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 08:55 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Привести к общему раз делителю, к сожалению, не вариант. Так задумано не мной. Спасибо за советы, сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 09:03 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, ну да, если по ЕСКД, то там все как то красиво, но грустно для реализации Иногда имеет смысл ввести новое поле и в триггере вставлять в него форматированную нумерацию (допустим формат группа1-группа2-группа3 с добавлением лидирующих знаков), но это лирика...частные случаи, все зависит от ваших объемов и критериев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 09:23 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
Что-то у меня не выходит. Каким образом вообще можно отделить буквенную часть от численной в чертеже (учитывая что там символ какой-то обязателен) ? А потом может от этого отталкиваться уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 10:40 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, отделяйте что хотите... tanglir Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 10:47 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutuКаким образом вообще можно отделить буквенную часть от численной Дубово - пользовательской функцией, которая ищет первый символ-цифру. Но если формат именно такой: Строго одна буква (не две и не три) + строго один символ-разделитель + несколько цифр то нет проблем: Код: sql 1. Если же блок, что с цифрами, надо интерпретировать и сортировать как строку, а не как число - то убираем CAST. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 10:47 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
А если чертежи названы черт знает как Эскиз.12345 Ск-4129 Либо вообще 731-160-3А ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 10:58 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutuА если чертежи названы черт знает как Эскиз.12345 Ск-4129 Либо вообще 731-160-3Атогда надо искать позицию разделителя и дальше работать от неё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 11:00 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
А если чертежи названы черт знает как Эскиз.12345 Ск-4129 Либо вообще 731-160-3А ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 11:04 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutuА если Тогда только "дубовый" вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 11:05 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutuА если чертежи названы черт знает как Эскиз.12345 Ск-4129 Либо вообще 731-160-3Авот по этим данным - что должно получится? а так... )) тоже самое только "комплексный" подход... функция от функции ... 1. REPLACE(myfield, ".","-") - приводим к одному разделителю!!! пусть всегда будет "-" 2. Теперь применяем к полученному SUBSTRING_INDEX(pole_iz_punkta1, "-",1) - отрезаем до первого дефиса результат -> в ORDER BY ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2016, 11:31 |
|
||
|
СОРТИРОВКА ORDER BY
|
|||
|---|---|---|---|
|
#18+
ilovemutu, напиши выражения, которые выделяют из номера чертежа группу букв, затем группу цифр, затем группу букв и так далее, возможно тебе еще какие-то группы там нужны тоже напиши. Пусть это будут выражения e1, e2... en. располагаются они в порядке важности для сортировки. теперь запиши их все в фразе order by, затем в конце припиши еще одно выражение, по чему там тебе надо еще. и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 11:29 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=110&tid=1832135]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
72ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 388ms |

| 0 / 0 |
