Autor Zpráva
Sxmanek
Profil
Zdravím, narazil jsem na menší problém.
Zkouším si vypsat všechny auta jejichž cena je menší než průměrná cena všech aut.
SELECT znacka FROM auta WHERE cena<AVG(cena); 
Ale vypisuje mi to chybu.
ORA-00934: skupinová funkce zde není dovolena
//Vyřešeno.

Jde nějak udělat abych místo 1-9 01,02,03....09 a pak už jen 10,12,13...hledal, ale nic co by fungovalo jsem nenašel.
Kajman
Profil
hledejte lpad či to_char
Zechy
Profil
Pokud to chceš rovnou v dotazu, jde to přes CASE podmínit, jestli vrácený řádek obsahuje číslo menší 10, v případě, že ano, doplníš přes LPAD() nulu, pokud ne, necháš to být. A zřejmě to před LPAD() budeš muset ještě převést do charu, jak psal Kajman. Tudíž pak bys měl něco na styl:
LPAD('0', to_char(cislo))
Kajman
Profil
Zechy:
Parametry funkce lpad máte špatně.
Zechy
Profil
Kajman:
No, v Oraclu jsem už dlouho nepsal :), ale mám dojem, že jsem vždycky dával co má udělat/vložit a pak řetězec...

EDIT: Ono se to dokonce v oraclu píše ještě složitěji. První parametr je řetězec, druhý je délka stringu a poslední je teprve znak/řětězec, který chceme přidat.
Což by v tomto případě byl LPAD asi takhle:
LPAD(to_char(cislo), 2, "0")
Sxmanek
Profil
jj, tak jako dělá to co chci, ale i to co nechci, když mám třeba číslo 35%, tak mi to udělá 00035%. Takže to zkouším přes case nějak podmínit, ale nechce mi to vzít operátor < v case.
Zechy
Profil
Podivej se jak se pisi podminky v oracle databazich, hledej case a decode.
Sxmanek
Profil
jo dobrý, zapomněl jsem tam psát END
juriad
Profil
Otázkou je, zda vůbec chtít po databázi, aby prováděla nějaké formátování. Databáze by měla být skladištěm dat a neměla by v ní být žádná aplikační ani prezentační logika.
Zechy
Profil
juriad:
Oracle a jeho PL/SQL ovsem toto z databaze delaji, v jejich Applicatin Expresu se da v PLku naprogramovat cela webova aplikace
juriad
Profil
Zechy:
To ano, proto to formuluji takto mírně; obecně platí, že formátování se má provádět co nejpozději.
Je však také možné, že Sxmanek prostě zvolil špatnou vrstvu pro řešení formátování.
Dokud se sám nevyjádří, nebudeme vědět.
Zechy
Profil
juriad:
Je možné, že to má v rámci Oracle academy. Tam jinou možnost, než že to formátovat v dotazu člověk nemá.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: