[ solic @ 23.11.2010. 08:14 ] @
Naime prebacujem bazu sa ms sql na firebird i tamo sam mogao da u selectu uporedjujem vrednost sa poljem gde je sadrzaj polja "a20[1-4]" sto predstavlja a201,a202,a203,a204 na primer "'a201' LIKE nazivPolja" to mi ne radi u firebirdu jasno mi je da je to neka prosirena ms sql naredba ali da li postoji nesto slicno u firebirdu.
[ mish_ns @ 03.12.2010. 14:55 ] @
Hmm...
Citat:
'a201' LIKE nazivPolja

Mislim da bi trebalo obrnuto:

nazivPolja LIKE 'a201'

Komplet upit bi isao ovako:

SELECT nazivPolja, nayivPolja1 FROM Tabela WHERE nazivPolja LIKE 'a201'

Pozdrav!
[ solic @ 06.12.2010. 09:59 ] @
Nije problem u upitu , moze i 'a201' LIKE nazivPolja .

Problem je u prosirenju funkcije LIKE u Transact SQL-u koja omogucava da se navode wildcard characters kao sto su [ i ] i ostali ...

Sto vise razmisljam o tom problemu dolazim do zakljucka da je jedino resenje pisanje UDF funkcije koja ce raditi istu stvar kao i T-SQL funkcija LIKE.

U svakom slucaju , hvala na interesovanju .
[ schild @ 06.12.2010. 10:08 ] @
Pa imas wildcard % i _ u like funkciji. Ovo bi trebalo da ti odradi sto si napisao, ako sam te dobro razumeo:
Code:
SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja LIKE 'a20%'

Mislim da nije svejedno da li je 'NESTO' like NazivPolja, ili obrnuto. 'NESTO' like NazivPolja verovatno nece koristiti indexe.
[ ismilovic @ 06.12.2010. 13:25 ] @
nazivPolja LIKE 'a201%' % = wildcard
[ solic @ 07.12.2010. 07:53 ] @
Mislim da se nismo razumeli.

Problem je sledeci: za jednu konkretnu zadatu vrednost (u primeru 'a201') proveriti da li pripada zadatom skupu vrednosti koji se nalazi u polju tabele (u primeru 'a20[1-4]' , ovo je samo prostiji primer - ima i slozenijih).

Ponudjeno resenje

SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja LIKE 'a20%'

ne resava problem , jer bi u ovom slucaju prosla i zadata vrednost od npr. 'a207' , a isto tako ja imam konkretnu vrednost 'a201' i ne mogu runtime da odredjujem gde moram da stavim wildcard (na kojoj poziciji , jer postoje i ovakvi slucajevi: E[^7]%, F3[23][01] i mnoge druge kombinacije...).

Mislim i dalje da mi samo pisanje udf funkcije koja bi proveravala sve te slucajeve moze resiti problem.

[ schild @ 07.12.2010. 17:40 ] @
Ako koristis FB2.5 imas resenje sa regular expressions, tj SIMILAR TO.
Tvoj primer se onda moze resiti sa
Code:
SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja SIMILAR TO 'a20[1-4]'