Problem z metaznakami w SQL-prosze o pomoc:(

0

Witam,

Niedawno zacząłem swoją przygodę z SQL-em, więc proszę o wyrozumiałość.
Mam bazę danych z tabelą "uczniowie2", w której min. znajdzuje się kolumna "nazwisko" (TEXT). Chce otrzymać w wyniku zapytania wszystkich uczniów, których nazwiska zaczynają się od litery "K".
Wpisując:
SELECTFROM uczniowie2
WHERE nazwisko='Kazmierczak';
otrzymuje 2 uczniow o tym nazwisku i to sie zgadza, ale dalej juz same problemy, ponieważ zapytanie:
SELECT
FROM uczniowie2
WHERE nazwisko='K%';
nie wyświetla żadnego wyniku, chociaż nie jest też błędne (wyskakuje pusta tabelka)
analogicznie polecenia:
SELECTFROM uczniowie2
WHERE nazwisko='K
';
SELECTFROM uczniowie2
WHERE nazwisko='^K';
nie dają żadnych wyników (pusta tabelka), chociaż z moim aktualnym stanem wiedzy POWINNY wyświetlić przynajmniej 2 osoby
ponadto polecenia:
SELECT
FROM uczniowie2
WHERE nazwisko REGEXP ='^K';
SELECTFROM uczniowie2
WHERE LEFT(nazwisko,1)='K';
nie działają (tzn. system wyrzuca błąd, dlaczego?)
Jakiś problem z metaznakami? Nie działają, czy jak? Wychodzi na to, że są traktowane jako zwykłe znaki, chociaż o zgrozo, wczoraj wieczorem po paru godzinach poszukiwania działającego zapytania, które wyrzuciło by mi poszukiwane rekordy, wymienione powyżej zapytanie:
SELECT
FROM uczniowie2
WHERE nazwisko='K%'; ZADZIAŁAŁO! a rankiem już nie...reszta zapytań nie działała w ogóle
Pracuje w okienku Command Prompt (nie mam bardziej wymyślnego edytora), postgresql 8.3.7 jeśli dobrze pamiętam.
Straciłem już na tym, wydawało by się banalnym zadanku parę ładnych godzin...będę niezwykle wdzięczny nie tyle za samo podanie działającego zapytania, które wyświetli poprawne wyniki ile za wytłumaczenie gdzie i jaki błąd robie, jeśli jakiś...
Pozdrawiam serdecznie, szczególnie te osoby które doczytały do końca i skomentują to w jakiś sposób mniej lub bardziej pomocny.

0

SELECT * FROM uczniowie2
WHERE nazwisko LIKE 'K%';

0
bordeux napisał(a)

SELECT * FROM uczniowie2
WHERE nazwisko LIKE 'K%';

Wielkie dzięki:)
Działa...ciężko będzie przełknąć wstyd, ale cóż...jeszcze gdyby ktoś wytłumaczył dlaczego znak "=" psuje wszystko i dlaczego
SELECT*FROM uczniowie2
WHERE nazwisko REGEXP '^K';
nie działa (bądź przykład z LEFT(..)='K')?

0

Stawiam na to, że nie wchodzi ci zapytanie, gdyż nie masz spacji miedzy * , czyli SELECT*FROM na SELECT * FROM.
Z left u mnie działa. Może nie masz takich rekordów, albo tabeli.

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