|
|
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста как быть в ситуации, делаю запрос к БД и получаю данные типа varchar Но иногда эти данные в виде строки, а иногда в виде числа. В другом поле (type) у меня содержится тип получаемых данных (строка или число). Скажите могу ли я сделать ORDER различный в зависимости от значения type ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 23:49:59 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
motoroller1983Но иногда эти данные в виде строки, а иногда в виде числа.Так не бывает. В пределах одной таблицы или набора записей в одном поле всегда может быть только один тип данных, одинаковый для всех записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 23:55:55 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
Ну я же сказал тип varchar поле где данные храняться но иногда туда записываются слова а иногда числа так вот сортировка нужна адекватная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 23:58:45 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
motoroller1983так вот сортировка нужна адекватнаяа что вперед должно идти - 'aaa' или '123' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 00:00:30 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
motoroller1983Ну я же сказал тип varchar поле где данные храняться но иногда туда записываются слова а иногда числа VARCHAR - это всегда строка. БЕЗ ВАРИАНТОВ. То, что Вы лично некий тип строк интерпретируете как число, никоим образом не соотносится с типом хранимых и обрабатываемых данных. Это типичная ошибка - путать значение и его отображение. Если же всё-таки "хочется странного" - то нужно выработать некие строгие формализованные признаки, которые однозначно укажут, должно ли определённое значение восприниматься как строковое или как чисельное. И на основе материализованного выражения расчёта такого признака строить первый шаг сортировки. Например Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 13:27:15 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
On 04.09.2014 00:58, motoroller1983 wrote: > Ну я же сказал тип varchar поле где данные храняться Тогда это всегда строка. > но иногда туда записываются слова а иногда числа Тебе уже сказали, так не бывает. ТУДА записывается всегда строка. > так вот сортировка нужна адекватная Разбивай на два поля. Оба с NULL. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 14:34:51 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
Еще раз объясняю, я понимаю, что неправильно в varchar хранить число и строки. Я понимаю, что база воспринимает все как строку. Но вот такая задача. Бывает в данном поле: либо все данные строка, либо число, причем иногда с десятыми. Вот решение: Код: sql 1. 2. 3. Но это не сортирует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 00:16:03 |
|
||
|
Как отсортировать и строку и число
|
|||
|---|---|---|---|
|
#18+
motoroller1983, запомните общее правило для случаев когда в полях хранятся сложные данные: всегда создается дополнительная сортировочная колонка в которую записываются нормализованные для сортировки значения, которые являются производным значением (с соотв. некой логикой) от этих самых сложных данных это общая концепция, которая почти всегда работает отлично и не требует от СУБД каких-то наворотов и соотв. кодерам не требуется знать никаких наворотов конкретной СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 00:27:10 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=164&tid=1834276]: |
0ms |
get settings: |
10ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 352ms |

| 0 / 0 |
