"We are back" « oc.at

SQL Frage

Umlüx 05.07.2003 - 16:43 946 7
Posts

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 9089
Hab ein kleines Problem da ich leider nur ein SQL n00b bin

ich will alle werte in einer spalte durch einen angegebenen wert dividiern. so weit so gut.
doch soll das ergebnis dabei immer ganzzahlig bleiben und >=1 !
wie stell ich das nun an?

danke!!

MDK

Addicted
Registered: Mar 2002
Location: Vlbg
Posts: 457
und was soll passieren, wenn der gerundete Wert der Division 0 ist?

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 9089
dann soll er 1 sein

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
verwende round() zum runden und für die zahlen die dann 0 sind mach ein zweites query, das sie auf 1 setzt.

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 9089
round().. interessant :D
danke

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
bitte :)

MDK

Addicted
Registered: Mar 2002
Location: Vlbg
Posts: 457
wenn Du generell aufrunden willst, kannst Du auch ceiling() verwenden, oder je nach DBMS gibt es auch ein If oder IIf.

Ein union join ist nämlich von der Performance her so ziemlich das schlechteste was man machen kann.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
für die akten: welche RDBMS ? gerade bei diesen funktionen unterscheiden sich die sql-dialekte sehr.

bei oracle heißen die betreffenden funktionen zb ceil(),floor(),round(),greatest(),least() und das if/iff heißt decode().

select greatest(1,ceil(splatenname/5)) from tablename;
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz