Instrukcja LIKE w SQL

0

Delphi 7 i standardowa baza Paradox.

Jak wyjąć z tabeli wiersze gdzie kolumna zawiera ciąg znaków, a tak naprawdę jaki ciąg zastępuje ciąg liter.

Próbowałem

  1. LIKE '%ABC%' jak w Oracle
  2. LIKE 'ABC' jak w Accessie

Oba mi nie dzialają :-(

0

Jesli stosujesz to poprzez TQuery to masz cos takiego

Query1.SQL.Text:='Select * form baza.db WHERE pole like :p0 ';
Query1.Params[0].AsString:='%'+Edit1.text+'%';
Query1.Open;

takie uzycie daje Ci wszystkie pola z bazy w ktorych pole zawiera text w Edi1

jesli dalbys % tylko z przodu to masz konczocy sie na Edit1 a z tylu to zaczynajacy sie od Edit1

Jak jescze jakies pytania do wal smialo........;D

0

Jeśli używasz BDE+Paradox to % zastępuje dowolną ilość znaków, a _ - jeden znak (zob. http://www.jack1024.private.pl/downloads/download.php?cat=docs&scat=delphi5&f=LocalSQL.pdf.zip).
Dlatego Twoja 1) powinna działać !?!

Odnośnie 2) - W Accessie 2000, symbolem zastępującym dowolną ilość znaków, jest również %, nie - * (może w innych wersjach jest inaczej?).

Zwróć też uwagę na wielkości znaków. W niektórych bazach danych, przy porównywaniu, wielkość znaków jest rozróżniana (Paradox), a w niektórych nie (np. Access 2000).

0

Działa wersja 1), nie wiem czemu nie działało musiałem mieć zaćmienie.
Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1