|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
30. 09. 2008. | #1 |
Ivan Dilber
Sir Write-a-Lot
|
vracanje true/false ili 0/1 ako postoji vrednost
uradim LEFT JOIN 2 tabele i kao rezultat dobijem u koloni ili null (nema sa cime da se joinuje) ili neki broj veci od nule ako je uradio join (ID je u pitanju).
Kako mogu da pomocu SQL postignem da mi se umesto toga u rezultatu vrati nekakva boolean vrednost (0 i 1, ili null i 1, ili vec nesto slicno ) ?
__________________
Leadership is the art of getting people to want to do what you know must be done. |
30. 09. 2008. | #2 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Možeš sa nekom sign(coalesce(vrednost, 0)) varijantom, ili nekim case-om.
Poslednja izmena od jablan : 30. 09. 2008. u 20:23. Razlog: funkcija se (barem u postgresu) zove sign() |
30. 09. 2008. | #3 |
Goran Pilipović
Sir Write-a-Lot
|
Volim ove "mozgalice" ali mi bas nije jasno Ti iz klasicnog join dobijes vrednost ili null ali tebi treba 1 ili null ? Ako sam ja dobro shvatio problem, zar to nije (skoro) isto, ako vec na osnovu toga postavljas uslov?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
30. 09. 2008. | #4 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 06.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Možda da pogledaš funkcije opisane ovde, posebno IF (a možda u kombinaciji sa još nekom kao IFNULL)
http://dev.mysql.com/doc/refman/5.0/...functions.html 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.
__________________
Commercial-Free !!! |
30. 09. 2008. | #5 |
Ivan Dilber
Sir Write-a-Lot
|
@blues: to se salje preko json, pa onda neke javascript klase to dalje koriste. One ocekuju 0 ili 1 (a sad dobiju nesto tipa 123456), pa mi je lakse ako mogu da modifikujem upit da vrati to direktno, nego da trazim gde u javascriptu to da menjamo.
@degojs: thanx to zvuci kao ono sto mi treba, pogledacu
__________________
Leadership is the art of getting people to want to do what you know must be done. |
30. 09. 2008. | #6 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 06.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Izgleda može ovako (polje tempfield ima neku vrednost ili null):
select IF( tempfield is null, 0, 1) from t1
__________________
Commercial-Free !!! |
30. 09. 2008. | #7 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
sign() postoji i u mysql, tako da može i ova varijanta koju sam predložio:
Kôd:
sign(coalesce(vrednost, 0)) |
30. 09. 2008. | #8 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 06.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
^Jok.
Recimo da imaš sledeće vrednosti: 2 -4 NULL 0 1. Tvoje rešenje vraća 3 vrednosti (-1, 1 i 0), a Ivan treba dve 2. Vraćaš 0 za ulazne vrednosti i NULL i 0, što je pogrešno Dodatno, ako je polje tipa npr. varchar pa imaš vrednost: abc 3. Vraćaš 0 za varchar vrednosti (kao "abc") što je opet pogrešno (Pod uslovom da sam dobro razumeo šta on traži.)
__________________
Commercial-Free !!! |
30. 09. 2008. | #9 | |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Pa mislim da nema mnogo dileme kako razumeti:
Citat:
|
|
30. 09. 2008. | #10 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 06.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Ostaje onda da zaključimo da je moje rešenje jednostavnije i razumljivije, pored što je univerzalnije. Otprilike kao C# u odnosu na Ruby
__________________
Commercial-Free !!! Poslednja izmena od degojs : 30. 09. 2008. u 22:52. |
"Hvala" degojs za poruku: |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Download: The True Story of the Internet | japan | Opušteno | 1 | 08. 05. 2008. 12:17 |
Vracanje ID broja na 1 | celawi | Programiranje | 7 | 17. 02. 2008. 16:34 |
Vrednost PR i računanje... | pravim.prvi.sajt | Marketing i SEO | 15 | 06. 06. 2007. 08:11 |
vrednost 2 domena ? | bukovski | e-Business | 24 | 16. 03. 2007. 22:20 |
vracanje niza iz funkcije | bojan_bozovic | PHP | 4 | 06. 02. 2006. 11:23 |