Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.26;
Скачать: CL | DM;

Вниз

Сортировка результатов запроса.   Найти похожие ветки 

 
sergeyst ©   (2007-07-26 11:57) [0]

Всем привет. Нужно сортировать полученные данные нестандартным образом. Можно это сделать?


 
Desdechado ©   (2007-07-26 12:00) [1]

Вводить признак, который дает возможность отсортировать.


 
sergeyst ©   (2007-07-26 12:06) [2]


> Вводить признак, который дает возможность отсортировать.

Увы, не получится. В базу нельзя ничего добавлять(кроме ХП).
А сортировать надо так:
ЦГ100 > ЦГ60.


 
AZIZE ©   (2007-07-26 12:12) [3]

раздели на два поля


 
Desdechado ©   (2007-07-26 12:12) [4]

Кто говорил о базе?
Введи в запрос. Или сделай функцию, которая будет возвращать признак для сортировки на основании "нестандартных данных". Сортируй в запросе по ней.


 
sergeyst ©   (2007-07-26 12:14) [5]


> "нестандартных данных".

я говорил про нестандартную сортировку.

> Или сделай функцию

где сделать?


 
Desdechado ©   (2007-07-26 12:22) [6]

В своей тщательно скрываемой СУБД.


 
sergeyst ©   (2007-07-26 12:25) [7]


> Desdechado ©   (26.07.07 12:22) [6]

Ясно, спасибо. А почему
> тщательно скрываемой
?


 
Desdechado ©   (2007-07-26 12:29) [8]

>  А почему тщательно скрываемой?
Вот и я удивляюсь, почему?


 
sergeyst ©   (2007-07-26 12:57) [9]


> Вот и я удивляюсь, почему?

Где я ее скрывал?


 
БарЛог ©   (2007-07-26 13:25) [10]

а вот и не подерётесь :)


 
Сергей М. ©   (2007-07-26 13:26) [11]


> Где я ее скрывал?
>


А где ты ее упомянул ?


 
Сергей М. ©   (2007-07-26 13:28) [12]


> кроме ХП


ХП - единственный намек на СУБД.

Да мало ли СУБД, поддерживающих механизм ХП !


 
sergeyst ©   (2007-07-26 13:41) [13]


> Да мало ли СУБД, поддерживающих механизм ХП !

А большая разница между функциональностью, скажем, PSQL и T-SQL?


 
Desdechado ©   (2007-07-26 13:45) [14]

Большая. FB некоторых версий не умеет создавать индексы по UDF, да и понятия функция-неUDF нет в нем.
Ну, как хочешь, партизань дальше.
Мы тебя на дыбу не потянем, оставим это удовольствие пользователям.


 
Сергей М. ©   (2007-07-26 13:46) [15]


> А большая разница между функциональностью, скажем, PSQL
> и T-SQL?


Ответа на этот находится в справочниках по той самой "секретной" СУБД.


 
sergeyst ©   (2007-07-26 13:47) [16]


> Ну, как хочешь, партизань дальше.

IB 6.5
А ты мне может и напишешь сейчас эту функцию?


 
sergeyst ©   (2007-07-26 13:48) [17]


> Ответа на этот находится в справочниках по той самой "секретной"
> СУБД.

Обязательно приму к сведению.


 
Сергей М. ©   (2007-07-26 13:56) [18]


> sergeyst ©   (26.07.07 13:48) [17]


Вот держу я перед носом док-цию к IB6 и в упор не вижу там никакого "T-SQL".
Мне к окулисту пора ?


 
sergeyst ©   (2007-07-26 14:01) [19]


> Вот держу я перед носом док-цию к IB6 и в упор не вижу там
> никакого "T-SQL".
> Мне к окулисту пора ?

Не знаю, решать тебе к кому.


> sergeyst ©   (26.07.07 13:41) [13]

1.
> , скажем,
- предположим, например и т.д.

2.
> PSQL и T-SQL
про PSQL-то в док-ции написано, надеюсь?


 
Сергей М. ©   (2007-07-26 14:06) [20]


> sergeyst ©   (26.07.07 14:01) [19]


> про PSQL-то в док-ции написано, надеюсь?
>


И оч даже подробно. А также про ISQL, DSQL и ESQL.

Но вот про T-SQL - ни слова.

Если ты сделал ставку на IB, к чему тогда упоминание о T-SQL ?


 
sergeyst ©   (2007-07-26 14:21) [21]


> Если ты сделал ставку на IB, к чему тогда упоминание о T-
> SQL ?

Хотел узнать сильно ли они отличаются.

ЗЫ. Ставку делал не я, а фирма-разработчик проги, к бд которой я леплю интерфейсный модуль. В связи с чем вопрос: Насколько законно цепляться к бд, поставляемой вместе с лицензионной программой?


 
Leonid Troyanovsky ©   (2007-07-26 14:33) [22]


> sergeyst ©   (26.07.07 14:21) [21]

> законно цепляться к бд, поставляемой вместе с лицензионной
> программой?

Зависит от условий предоставления самих данных.

--
Regards, LVT.


 
Сергей М. ©   (2007-07-26 14:35) [23]


> Хотел узнать сильно ли они отличаются


Сравни сам описания IB PSQL и MS T-SQL

http://technet.microsoft.com/ru-ru/library/ms189826.aspx


 
sergeyst ©   (2007-07-26 14:50) [24]


> Зависит от условий предоставления самих данных.

Данные нашего предприятия, а вот БД - разработка сторонней компании. Прога, ее использующая, приобретена на 10 рабочих мест.


> Сергей М

Спасибо за ссылочку.


 
Сергей М. ©   (2007-07-26 14:52) [25]


> sergeyst ©   (26.07.07 14:50) [24]
>
>


А тебе не приходило в голову почитать лиц.соглашение, возникающее перед глазами в ходе инсталляции СУБД ?


 
palva ©   (2007-07-26 14:53) [26]


> sergeyst ©   (26.07.07 12:06) [2]

А зачем использовать хранимые процедуры? Можно обойтись SQL

SELECT s1, cast(substr(s3, 3, strlen(s3)) as INTEGER) FROM TEMP_TABLE ORDER BY 2

Это FireBird 1.5. Из ветки так и не понял, какая у вас СУБД.


 
Сергей М. ©   (2007-07-26 14:58) [27]


> palva ©   (26.07.07 14:53) [26]


Он же сказал - IB6.5

Только вот вместо вполне закономерного вопроса "можно ли и как сделать сабж средствами IB PSQL/DSQL/ESQL" Автора понесло в степь MS T-SQL)


 
sergeyst ©   (2007-07-26 15:12) [28]


> А тебе не приходило в голову почитать лиц.соглашение, возникающее
> перед глазами в ходе инсталляции СУБД ?

Не СУБД, а БД. Ход инсталляции проги был задолго до моего прихода.


> А зачем использовать хранимые процедуры? Можно обойтись
> SQL

Нет, нельзя - это лишь один из вариантов обозначения номенклатуры.


> Только вот вместо вполне закономерного вопроса "можно ли
> и как сделать сабж средствами IB PSQL/DSQL/ESQL" Автора
> понесло в степь MS T-SQL)

Понесло после того, как понял, что можно сделать средствами PSQL (ну не совсем - лишь то, что это возможно).


 
Сергей М. ©   (2007-07-26 15:20) [29]


> Насколько законно цепляться к бд, поставляемой вместе с
> лицензионной программой?


Ну ты же "цепляешься" не непосредственно, а при посредничестве IB-сервера..

Если его использование в дан.контексте не противоречит лиц.соглашениям разработчиков IB, то здесь засады нет.

Если твои действия, направленные на модификацию БД, не ограничены санкциями в договорных соглашениях с ее поставщиком, то здесь тоже засады нет - ты просто действуешь на свой страх и риск.


 
sergeyst ©   (2007-07-26 15:29) [30]


> Сергей М. ©   (26.07.07 15:20) [29]

Спасибо, ясно.
И

> "можно ли и как сделать сабж средствами IB PSQL/DSQL/ESQL"

?


 
Вася Правильный   (2007-07-26 15:29) [31]

мозготраханье какое-то
групповое
один всех


 
sergeyst ©   (2007-07-26 15:36) [32]


> мозготраханье какое-то
> групповое
> один всех

все - всех


 
palva ©   (2007-07-26 15:37) [33]

> Нет, нельзя - это лишь один из вариантов обозначения номенклатуры.
Ну и что? Разве нельзя учесть все варианты? Конечно, если будет сложно, то проще написать ХП, Она, например, будет возвращать все нужные поля, плюс поле, по которому нужно сортировать. Это допустимо? Алгоритмических и лицензионных проблем не будет?


 
Сергей М. ©   (2007-07-26 15:37) [34]


> sergeyst ©   (26.07.07 15:29) [30]


Ответ на вопрос "можно ли" опять же дает официальный документ IB6 SQL Language Reference.

И даже не заглядывая туда скажу что можно, даже если нет подходящих языковых конструкций. Если что-то нельзя или сложно реализовать прямо на SQL, на помощь всегда придет механизм IB UDF, возможности которого вряд ли трудно переоценить.


 
sergeyst ©   (2007-07-26 15:49) [35]


> Разве нельзя учесть все варианты?

Несколько десятков?


> на помощь всегда придет механизм IB UDF, возможности которого
> вряд ли трудно переоценить.

- вот изучением этого и займусь. Всем большое спасибо за
> Вася Правильный   (26.07.07 15:29) [31]


 
Сергей М. ©   (2007-07-26 15:57) [36]


> sergeyst ©   (26.07.07 15:49) [35]


Вариант, предложенный в [26], будет работать в IB6 как в PSQL, так и в DSQL.

Единственное различие - ф-ция SubStr() для IB является внешней (при условии подключения штатной библ-ки ib_udf.dll), в то время как в FB она, если не вру, внутренняя, т.е. не требует подключения UDF.


 
palva ©   (2007-07-26 16:19) [37]

> т.е. не требует подключения UDF.
Похоже, что требует. И Strlen требует. Но у них есть внутренние эквиваленты


 
MsGuns ©   (2007-07-26 21:20) [38]

Засстрелиться !! Сортировать что, нужно только средствами SQL ?
А просто на клиенте нельзя ?


 
palva ©   (2007-07-26 21:56) [39]

> А просто на клиенте нельзя ?
В базе данных Access?


 
MsGuns ©   (2007-07-26 22:50) [40]

>palva ©   (26.07.07 21:56) [39]
>В базе данных Access?

А собсна.. какая разница ?


 
Anatoly Podgoretsky ©   (2007-07-26 23:51) [41]

> sergeyst  (26.07.2007 13:41:13)  [13]

Ты что торговаться сюда пришел?


 
sniknik ©   (2007-07-27 00:55) [42]

> В базе данных Access?
а почему собственно нет? хот в базе(/запросе) хоть на клиенте. хотя он и не упоминался в ветке как претендент на используемую...


 
sergeyst ©   (2007-07-27 09:19) [43]


> а почему собственно нет? хот в базе(/запросе) хоть на клиенте.
>  хотя он и не упоминался в ветке как претендент на используемую.
> ..

как же сортировать на клиенте?


 
sniknik ©   (2007-07-27 11:06) [44]

> как же сортировать на клиенте?
ADODataSet.Sort:= "Field"; //самая простая сортировка


 
sergeyst ©   (2007-07-27 11:56) [45]


> ADODataSet.Sort:= "Field"; //самая простая сортировка

 IBQuery
см. > sergeyst ©   (26.07.07 12:06) [2]


 
sniknik ©   (2007-07-27 13:09) [46]

> см. > sergeyst ©   (26.07.07 12:06) [2]
см. palva ©   (26.07.07 21:56) [39]
sniknik ©   (27.07.07 00:55) [42]
sniknik ©   (27.07.07 11:06) [44]
что на что ответ был ...

> IBQuery
ну и что? передать данные через провайдер данных в рекордсет который имеет похожую функциональность (пусть и в других методах), раз уж, и если IBQuery не может, не такая уж большая проблема.
и кстати в [2] IBQuery както не фигурирует... ребусы свои ты как нибудь сам решай.


 
sergeyst ©   (2007-07-27 13:33) [47]


> ребусы свои ты как нибудь сам решай.


> А сортировать надо так:
> ЦГ100 > ЦГ60.



 
sniknik ©   (2007-07-27 14:46) [48]

> А сортировать надо так:
> ЦГ100 > ЦГ60.
и что? выделить для аксесса цифры из этого, и сортировать по ним, что в базе в вычисляемом поле, что в запросе (не трогая базу по дполнению в [2]), что на клиенте в дополнительно созданном уж никак не проблема.
о чем и сказано в [42].

p.s. ты наверное американец... по духу минимум.
по анекдоту.
что делает американец когда собеседник не понимает английского?
он начинает говорить громче!

если не понимаешь лучше бы обьяснил вместо повторов с выделениями... тебя то давно поняли просто отвечают в том же духе, "полу фразами". а ты свой же стиль почемуто не понимаешь... начинаешь "говорить громче", но то же самое.


 
sergeyst ©   (2007-07-27 15:34) [49]


> p.s. ты наверное американец... по духу минимум.

хз?
Ладно, как выделить цифры из InterBase, Антипод американского духа? Хоть как-нибудь, а то я не знаю ни как в запросе, ни на клиенте.

PS. А если давно поняли, на что я и рассчитывал говоря полуфразами, чего-же не подсказали? Или для получения ответа необходимо предельно ясно сформулировать вопрос? Для кого?


 
Игорь Шевченко ©   (2007-07-27 15:45) [50]


> Ладно, как выделить цифры из InterBase, Антипод американского
> духа? Хоть как-нибудь


А доку читать немодно ? Или впадлу ?


 
sergeyst ©   (2007-07-27 15:49) [51]


> Игорь Шевченко ©   (27.07.07 15:45) [50]

некогда


 
MsGuns ©   (2007-07-27 15:52) [52]

>sergeyst ©   (27.07.07 15:49) [51]
>некогда

А трепаться вторые сутки на форуме есть когда ?


 
sergeyst ©   (2007-07-27 15:54) [53]


> А трепаться вторые сутки на форуме есть когда ?

Я параллельно делаю другое


 
sniknik ©   (2007-07-27 15:55) [54]

> на что я и рассчитывал
так поздно поняли то, когда на ветке уже "клеймо" "потрепаловское" стояло... в таких мало кто отвечает. вот если бы стало понятно сразу, или хотябы всего после пары тройки уточняющих вопросов с ответами на них...

> чего-же не подсказали?
ну во первых я отвечал не тебе. см. с чего(кого) начались мои посты. а по IB я мало чего знаю, и разбираться просто как не хочется, так что... не полез бы если бы "безконкретика" и предположения(/"наезды") на другие базы(/способы работы).

> Или для получения ответа необходимо предельно ясно сформулировать вопрос?
все зависит от желания... чего больше хочется получить ответ или потрепаться. сам решай.

> Для кого?
ну наверное для того кто захочет ответить, и в тоже время знает(/захочет разобраться)... кого сумеешь заинтересовать вопросом.


 
MsGuns ©   (2007-07-27 16:09) [55]

Есть такая штукенция - TClientDataSet? в который можно "запихнуть" датасет, полученных хоть от ИБ, хоть от Уракла, хоть от мускула, хоть от черта хвостатого.
У этого самого клиентского датасета прорва самых разных методов, в том числе и сортировки. Для его изучения мне в свое время понадобилось полдня, а я в отличие от некоторых форумчан сообразительностью хвастать не могу ;)


 
Сергей М. ©   (2007-07-27 16:10) [56]


> как выделить цифры из InterBase


После этой абракадабры вряд ли можно расчитывать на серьезное отношение к тебе как к разработчику.


 
clickmaker ©   (2007-07-27 16:17) [57]


> как выделить цифры из InterBase

substring("IB6.5", 3, 3) = 6.5


 
sergeyst ©   (2007-07-27 16:18) [58]


> серьезное отношение к тебе как к разработчику.


> Сергей М. ©   (27.07.07 16:10) [56]

Серьезный разработчик в форуме для начинающих! Аж лестно стало!
А насчет > абракадабры из контекста "трепалова" все понятно.


 
sergeyst ©   (2007-07-27 16:23) [59]


> substring("IB6.5", 3, 3) = 6.5

А вот такие варианты:
ЦГ-2-50.30х585.30
ЦГ-50.25х1050.11
Ц100х200-3
Ц100х400-3Л
ЦГ1-60.30х175.22-02
ЦГР-80х350.57
6 19 L M14x1.5 (1Л)
6 20 L M14x1,5 (ZI)
12 27,5 L A17 A10 G 0,5 (2SN) ? Это первые попавшиеся, далеко не все вариации.


 
clickmaker ©   (2007-07-27 16:29) [60]


> [59] sergeyst ©   (27.07.07 16:23)

хм... а по какому принципу там сравнение тогда должно быть?
ну здесь - ЦГ100 > ЦГ60 - еще понятно
а 12 27,5 L A17 A10 G 0,5 (2SN)?


 
Sergey13 ©   (2007-07-27 16:35) [61]

> [59] sergeyst ©   (27.07.07 16:23)

ИМХО, тебе в самом первом ответе уже все сказали. Если не можешь сформулировать правило сортировки - вводи от руки сурогатный признак.


 
sergeyst ©   (2007-07-27 16:47) [62]


> clickmaker ©   (27.07.07 16:29) [60]

 Строка разбивается на части. На части, состоящие только из букв или цифр. Потом последовательно сравниваются. Буквы(строки) обычным образом, цифры(числа) - как числа. Если сравниваются символьная строка с числовой, то ср. как строки. "-", ".", "x" - можно игнорировать, а можно и нет.
 WinXP так же сортирует файлы (или примерно так).


 
sergeyst ©   (2007-07-27 16:48) [63]


> ИМХО, тебе в самом первом ответе уже все сказали. Если не
> можешь сформулировать правило сортировки - вводи от руки
> сурогатный признак.

 Дык, хоть признак, хоть без него, как-то надо-ж критерий ввода определить.


 
Сергей М. ©   (2007-07-27 16:51) [64]


> Это первые попавшиеся, далеко не все вариации


Жуткая солянка)

И что, вся эта номенклатура относится к одной и той же категории/виду изделий одного и тотго же производителя ?


 
Sergey13 ©   (2007-07-27 16:52) [65]

> [63] sergeyst ©   (27.07.07 16:48)
> как-то надо-ж критерий ввода определить.

Так ты предлагаешь нам придумать почему ЦГ100 > ЦГ60 или 12 27,5 L A17 A10 G 0,5 (2SN)>ЦГ1-60.30х175.22-02?


 
sergeyst ©   (2007-07-27 16:55) [66]


> И что, вся эта номенклатура относится к одной и той же категории/виду
> изделий одного и тотго же производителя ?

Категории разные, производитель один.


 
Сергей М. ©   (2007-07-27 16:56) [67]


> sergeyst ©   (27.07.07 16:18) [58]


> Аж лестно стало


Это не я, это твой работодатель тебе польстил, допустив тебя к разработке в той предметной области, в которой ты пока мало что смыслишь)


 
Сергей М. ©   (2007-07-27 16:57) [68]


> sergeyst ©   (27.07.07 16:55) [66]
> Категории разные


А в пределах одной категории номенклатурные идентификаторы, я надеюсь, имеют хоть какую-то закономерность, по которой можно предположить критерий сортировки ?


 
Игорь Шевченко ©   (2007-07-27 17:06) [69]

Sergey13 ©   (27.07.07 16:52) [65]


> Так ты предлагаешь нам придумать почему ЦГ100 > ЦГ60


Ты что, скрипач, дальтоник ? И так же ясно, что 100 больше чем 60 :)


 
sniknik ©   (2007-07-27 17:09) [70]

смысла в сортировке этого мало... не будут пользоваться.
имхо, сортировка удобна потому что логична, можно сразу сказать в каком порядке записи если знать их тип, легко воспринимается, легко искать. но если для определения позиции человеку придется какието мутные расчеты делать... да нафиг она нужна ему будет такая сортировка.

p.s. практически не сомневаюсь, что счас всплывет неведомое требование неведомого заказчика, и вообще данная сортировка нужна для отчетов... а не для людей. (заранее. а отчеты для кого нужны?...)


 
sniknik ©   (2007-07-27 17:12) [71]

Игорь Шевченко ©   (27.07.07 17:06) [69]
а что больше зеленое или сладкое? литры или цена? ;о)


 
sniknik ©   (2007-07-27 17:13) [72]

насчет литров может быть ошибся, может это лошадиные силы...


 
Вася Правильный   (2007-07-27 17:14) [73]

> ЦГ-2-50.30х585.30
> 6 20 L M14x1,5 (ZI)

и что из них больше? цвяхи гумовi или полуторадюймовый трубы?

ps если уж ты в начинающих, хватит недомолвок
это не даст тебюе крутизны, это поставит на тебе клеймо тормоза


 
Игорь Шевченко ©   (2007-07-27 17:26) [74]

sniknik ©   (27.07.07 17:12) [71]

Литры больше


 
MsGuns ©   (2007-07-27 23:43) [75]

>Игорь Шевченко ©   (27.07.07 17:26) [74]
>Литры больше

Смотря чего ;)


 
sergeyst ©   (2007-07-30 08:45) [76]


> ps если уж ты в начинающих, хватит недомолвок
> это не даст тебюе крутизны, это поставит на тебе клеймо
> тормоза

Кто здесь ставит на себе клеймо тормоза?



Страницы: 1 2 вся ветка

Текущий архив: 2007.08.26;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.044 c
2-1186311698
Reals
2007-08-05 15:01
2007.08.26
StringReplace не работает для строки в Unicode


2-1185858542
tytus
2007-07-31 09:09
2007.08.26
Скорость выполнения запроса


15-1185473815
sdarqweqwe
2007-07-26 22:16
2007.08.26
настройка windows


15-1185835085
DEMP
2007-07-31 02:38
2007.08.26
ОГРОМНАЯ Проблема


15-1185882018
Rimd
2007-07-31 15:40
2007.08.26
InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский