sobota, 4 stycznia 2014

SQL,PL/SQL - Filtrowanie wyników zapytań (WHERE, BETWEEN, LIKE) - Oracle 10/11 cz.6

Tworząc zapytania do bazy możemy chcieć wybrać ze wszystkich wyników tylko te które posiadają specyficzną wartość, np. tylko te osoby które zarabiają określoną kwotę lub określony zakres kwot.

1) WHERE:

Zapytanie w którym używamy klauzuli WHERE pozwala wyświetlić tylko te wartości które odpowiadają naszym ograniczeniom.

Poniżej zapytanie dzięki któremu pokażemy wszystkie informacje

SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID=108;



Możemy również wyświetlić informacje o miesięcznej pensji pracowników, chcemy pokazać tych którzy zarabiają poniżej 1000$. Dodatkowo w zapytaniu została wykorzystana funkcja to_char  dzięki czemu wyliczenie miesięcznej pensji zostanie przedstawione w formie do 6 zanków przed przecinkiem oraz tylko 2 znaków po przecinku.

SELECT FIRST_NAME,LAST_NAME, SALARY, TO_CHAR((SALARY/12),'999999.99') as "Month Salary" FROM EMPLOYEES WHERE (SALARY/12)< 1000





2) BETWEEN:

Możemy również wyświetlić zarobki mieszczące się pomiędzy określonymi przez nas wartościami, np. 10 000 a 20 000$ rocznie:

SELECT FIRST_NAME,LAST_NAME, SALARY FROM EMPLOYEES WHERE SALARY BETWEEN 10000 AND 20000;





3) LIKE:

Jeżeli chcemy odnaleźć, np. wszystkie osoby których imię lub nazwisko rozpoczyna się od konkretnej listery, konkretną literę zawiera lub kończy się na nią, możemy do tego celu wykorzystać operator LIKE:
Wraz z nim występuje:

% - oznacza dowolną liczbę znaków występujących przed lub po danej literze,
_ (łącznik dolny) - oznacza dokładnie jeden znak występujący w wyrażeniu

Pokażmy wszystkich pracowników, których nazwisko zaczyna się od K:

SELECT FIRST_NAME,LAST_NAME FROM EMPLOYEES WHERE LAST_NAME  LIKE ('K%');



Wyświetlmy nazwiska które na drugim miejscu mają literkę t:

SELECT FIRST_NAME,LAST_NAME FROM EMPLOYEES WHERE LAST_NAME  LIKE ('_t%');



Na koniec te których nazwiska kończą się na a, ich długość nie jest ważna:

SELECT FIRST_NAME,LAST_NAME FROM EMPLOYEES WHERE LAST_NAME  LIKE ('%a');







Brak komentarzy:

Prześlij komentarz