Re: Wrong "ORDER BY" on a numeric value result
От | Thom Brown |
---|---|
Тема | Re: Wrong "ORDER BY" on a numeric value result |
Дата | |
Msg-id | AANLkTi=edPajW1RkZ+4F2v2TDmCwNOashYQE=rG12Mm4@mail.gmail.com обсуждение исходный текст |
Ответ на | Wrong "ORDER BY" on a numeric value result (Stefan Wild <wilds81@yahoo.de>) |
Список | pgsql-general |
On 14 August 2010 22:46, Stefan Wild <wilds81@yahoo.de> wrote: > Hello guys, > > I have following sorting problem and need your help. When executing this SELECT statement: > > "SELECT d.id, d.name, d.description, ts.name, d.opentimestamp, d.initialvalue, d.plmoney, d.performance, d.performancepa, d.currentopenmoney, d.investedmoney, d.investedpercent, d.cashmoney, d.realizedwinmoney, d.realizedlossmoney, d.currenttotalvalue, d.depotriskpercent, d.taxesratepercent, d.taxallowance, d.paidtaxes, d.paidfees FROM c_depots d INNER JOIN c_tradingsystems ts ON d.tradingsystem_id=ts.idINNER JOIN cx_users_depots cx ON cx.id_depots=d.id INNER JOIN c_users u ON cx.id_users=u.id WHEREu.login='xxxx' ORDER BY UPPER(CAST (d.currenttotalvalue AS numeric) ) DESC" > > the resulting ordering is wrong: > (d.currenttotalvalue) > 99999999999,99 > 9999999999,99 > 999999999,99 > 99999,99 > 100947,51 > 100251,14 > 100100 > 10000000000 > 10000000000 > 100000 > > I would expect: > > 99999999999,99 > 9999999999,99 > 10000000000 > 10000000000 > 999999999,99 > 99999,99 > 100947,51 > 100251,14 > 100100 > 100000 > > The column currenttotalvalue has a numeric type with a length of 14 and 2 digits for percision. The initial SELECT didn'tused the CAST, but the result was also wrong. > > I'm (still) using the postgres version 8.2. > > Thanks for your support. > I'm confused as to why UPPER appears in your ORDER BY clause. -- Thom Brown Registered Linux user: #516935
В списке pgsql-general по дате отправления: