Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.267 pregleda

Najnovija ↓

SQL upit, IB, D2007 28.05.2010. u 08:24 · pre 200 meseci #1
Koristim D2007 i IB.

Potrebna mi je pomoc oko sintakse za SQL upit u kodu. Problem je u sledecem:

1.
stavio sam u OnChange edit kontrole sledece

Query.Close;
Query.SQL.Clear;
Query.SQL.Add('select * from TABELA where UPPER(POLJE1) like ' +QuotedStr('%'+UpperCase(editPOJAM.Text)+'%' )+ ' order by POLJE2');
Query.Prepare;
Query.Open;

E sada, ako imam vrednosti u bazi za POLJE1 npr. Nenad Mitrovic i Jamica i kucam u editPOJAM mi, prikazace mi se oba pojma zato sto sadrze mi, prvo Jamica, a potom Nenad Mitrovic.
Meni je potrebno da se prvo prikaze Nenad Mitrovic a potom Jamica, po logici da se uzimaju pojmovi koji sadrze mi, ali, ako neki pojam ima razmak pa mi, kao sto je Mitrovic da prvo prikaze njega, pa onda ostalo.

2.
u SQL sam stavio order by POLJE2. Ako su moguce vrednosti za POLJE2 u bazi npr. 1,2,3,4 ili 5 rezultati ce se sortirati po principu prvo slogovi koji imaju 1, pa 2, pa 3, pa 4, pa 5.

E sada opet, da li postoji varijanta da neko kazem sledece:

Sortiraj po POLJE2, s tim, sto provo prikazuj ono sto ima vrednost 2, pa onda ostalo redom, sto bi znacilo da sortira sledecim redom:

2,1,3,4,5

Unapred se zahvaljujem.
Re: SQL upit, IB, D2007 28.05.2010. u 11:15 · pre 200 meseci #2
Deo pod tačkom 2. sam rešio na sledeći način:

select * from TABELA where UPPER(POLJE1) like ' +QuotedStr('%'+UpperCase(editPOJAM.Text)+'%' )+ ' order by decode (POLJE2, '2',1,2), POLJE2, POLJE1

Ovako se sortira prvo po POLJE2, s tim što se prvo ispisuju slogovi gde je vrednost 2, a potom sve ostalo. Posle toga, drugi deo sortiranja ide po POLJE1.

Ovo radi ok.

DA LI NEKO IMA IDEJU ZA TAČKU 1.
PUNO BI MI ZNAČILO.

HVALA.
Re: SQL upit, IB, D2007 28.05.2010. u 12:30 · pre 200 meseci #3
> potom Nenad Mitrovic. Meni je potrebno da se prvo prikaze Nenad Mitrovic a potom Jamica, po logici da se uzimaju pojmovi koji sadrze mi, ali, ako neki pojam ima razmak pa mi,
> kao sto je Mitrovic da prvo prikaze njega, pa onda ostalo.

Možeš iskombinovati preko UNION, npr:
Code:

SELECT
  NAME
FROM
  TABELA
WHERE
  NAME LIKE '% %MI%'
UNION ALL
SELECT
  NAME
FROM
  TABELA
WHERE
  NAME LIKE '%MI%' AND
  NAME NOT LIKE '% %MI%'
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: SQL upit, IB, D2007 28.05.2010. u 12:44 · pre 200 meseci
izmenjeno 1 put, poslednji put captPicard 28.05.2010. u 13:16
  1. captPicard28.05.2010. u 13:16zapis iz teksta poruke
#4
Nisam probao, ali da možda probaš ovako nekako:

zanemari, nisam dobro postavio problem :) a i viidm da je kolega gore dao odgovor
Potpis
F
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme