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.
Pomoc oko sql funkcije koju sam koristio u ms sql
Zaključano
Zakačeno
Hmm...
Mislim da bi trebalo obrnuto:
nazivPolja LIKE 'a201'
Komplet upit bi isao ovako:
SELECT nazivPolja, nayivPolja1 FROM Tabela WHERE nazivPolja LIKE 'a201'
Pozdrav!
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!
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 .
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 .
Pa imas wildcard % i _ u like funkciji. Ovo bi trebalo da ti odradi sto si napisao, ako sam te dobro razumeo:
Mislim da nije svejedno da li je 'NESTO' like NazivPolja, ili obrnuto. 'NESTO' like NazivPolja verovatno nece koristiti indexe.
Code:
SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja LIKE 'a20%'
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.
nazivPolja LIKE 'a201%' % = wildcard
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.
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.
Ako koristis FB2.5 imas resenje sa regular expressions, tj SIMILAR TO.
Tvoj primer se onda moze resiti sa
Tvoj primer se onda moze resiti sa
Code:
SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja SIMILAR TO 'a20[1-4]'
SELECT nazivPolja, nazivPolja1 FROM Tabela WHERE nazivPolja SIMILAR TO 'a20[1-4]'