• 3 odgovora
  • 3.496 pregleda
IF uslov u sql kodu 03.12.2008. u 08:36 · pre 217 meseci #1
U bazi je postavljeno ako nije unesen datum da on sam ubaci default-ni datum "0001-01-01" e sada kada to kupim u program i saljem na izvjestaj ruzno izgleda kada stoji taj datum.. pa me sada interesuje da li ja nekako mogu da napisem IF uslov u sql kodu..
tj. gdje je god defaultna vrijednost u sql da mi napishe null, a da mi ne remeti podatke u bazi..

npr IF(datum=="0001-01-01") datum="null";
Re: IF uslov u sql kodu 03.12.2008. u 08:50 · pre 217 meseci #2
prvo, za datum je iskusno da stavis da je default vrednost NOW() tako da ti ako ne uneses datum on upise trenutno vreme... no vezano za tvoje pitanje odgovor je DA.

http://dev.mysql.com/doc/refma...en/control-flow-functions.html

Citat:


IF(expr1,expr2,expr3)
If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns expr2; otherwise it returns expr3. IF() returns a numeric or string value, depending on the context in which it is used.


Code:

mysql> SELECT IF(1>2,2,3);
        -> 3
mysql> SELECT IF(1<2,'yes','no');
        -> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
        -> 'no'


Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: IF uslov u sql kodu 03.12.2008. u 11:22 · pre 217 meseci #3
Nisam mogao da postavim da upise trenutno vrijeme.. posto je taj datum neki podatak koji ce se kasnije unositi i treba da bude prazan

nego hvala na ovome pomoglo mi je rijesio sam problem
Re: IF uslov u sql kodu 03.12.2008. u 11:30 · pre 217 meseci #4
hm, onda si trebao da ostavis null u bazi i da upisujes tu null :) .. upisivanje 0001-01-01 nije bas neki "regularan" nacin za tako nesto :D no .. o ukusima ...

if resava problem .. to je bitno .. mozes sa if cak da radis stvari poput

Code:

create table t1(
  x int,
  y int.
  z int
);

select if (x>10,y,z) from t1;


to ce za svaki x>10 da ti vrati vrednost iz Y a za x<=10 vrednost iz Z :) .. pritom, obrati paznju, takav upit je uvek "table scan" sto znaci da je spoooooooor

cak i u nekim drugim situacijama if ce prouzrokovati table scan tako da ga treba koristiti sa paznjom
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme