Datuve :: Forums :: Arhīvs :: abc == '123' pārbaude SQL querijā

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 106

Reģistrētie lietotāji online: 0

Viesi online: 106

Datuve.lv video
Top.LV

abc == '123' pārbaude SQL querijā

Ievietoja: Oskars_M @ 2008.09.04 22:15  

Jautājums par SQL. Vai iespējams SELECT querijā atlasīt nevis konkrētu lauka vērtību, bet, piemēram, 0, ja ierakstam kolonnas `abc` vērtība ir '123' un 1, ja šī vērtība ir jebkas cits? Mēģināju dažādus CAST (... AS SMALLINT) variantus, bet bez panākumiem. DBVS ir Firebird 2.0, bet principā gan jau dzīvē noderētu risinājums arī citai DBVS.
Paldies jau iepriekš!

Komentāri:

#1 ob1 @ 2008.09.04 22:46

Select SQL izmanto vairākas valodas.
Dažās valodās var rakstīt šādi:
iif(abc=123,0,1)

#2 Oskars_M @ 2008.09.04 22:58

-> #1
Jā, to es jau arī pirms brīža sameklēju. Diemžēl, man tas atrisina tikai problēmas otro daļu ("gan jau dzīvē noderētu"), jo darbojas ar MySQL, bet nedarbojas ar Firebird.

#3 ob1 @ 2008.09.04 23:15

vēl ir icase(), vēl var lietot loģisko mainīgo/lauku, kurā ieraksta vienkārši "abc=123" un rezultāts būs .t. vai .f.

#4 Oskars_M @ 2008.09.05 11:09

-> #3
Paldies par norādēm, izmantojot CASE() tiešām izdevās izdarīt to, ko vajadzēja!
Ja nu kādam vēl līdzīga problēma gadās, eku mans risinājums:

SELECT ..., ..., ...,
CASE abc
 WHEN '123' THEN 0
 ELSE 1
END AS IS_NOT123,
...

#5 sn1per @ 2008.09.05 11:10

select
 case
   when asd == '123' then 0
   else 1
 end as smth
from
 tabula;