sobota, 11 marca 2017

Lekcja 11. Funkcje znakowe.

Funkcje znakowe przyjmują wejście znakowe, które może pochodzić z kolumny tabeli lub z dowolnego wyrażenia. Dane wejściowe są przetwarzane i jest zwracany wynik.

CHAR_LENGTH
Funkcja CHAR_LENGTH(x) zwraca liczbę znaków z x. Poniższe zapytanie za pomocą tej funkcji pobiera długość napisów z kolumny first_name tabeli employee:


POSITION
Funkcja POSITION(szukany_napis IN x) wyszukuje w x napis szukany_napis i zwraca pozycję pierwszego wystąpienia. Poniższe zapytanie pobiera pozycję, na której znajduje się napis be :


Można również przesłać opcjonalny parametr określający pozycję rozpoczęcia wyszukiwania. Wtedy funkcja ma postać POSITION(szukany_napis, xstart). Pierwszy znak w x ma pozycję 1. Poniższe zapytanie pobiera pozycję, na której znajduje się napis be, rozpoczynający wyszukiwanie od pozycji piątej:




 W przypadku braku wystąpienia szukanego napisu otrzymamy wartość 0: 


LOWER I UPPER
Funkcja LOWER(x) zmienia litery w x na małe. Funkcja UPPER(x) zmienia natomiast litery w x na duże. Poniższe zapytanie zmienia litery w napisach z kolumny first_name na wielkie, a litery z napisów z kolumny last_name na małe:


LPAD I RPAD
LPAD(x, szerokość, napis_dopełnienia) dopełnia lewą stronę x znakami przesłanymi jako opcjonalny parametr napis_dopełnienia do długość określonej w parametrze szerokość. Jeśli parametr napis_dopełnienia nie jest podany, wtedy domyślnie dopełnia spacjami.
RPAD(x, szerokość, napis_dopełnienia) dopełnia prawą stronę x znakami przesłanymi jako opcjonalny parametr napis_dopełnienia do długość określonej w parametrze szerokość. Jeśli parametr napis_dopełnienia nie jest podany, wtedy domyślnie dopełnia spacjami.
Poniższe zapytanie pobiera kolumny job_code i min_salary z tabeli job. Kolumna job_code jest dopełniana po prawej stronie za pomocą funkcji RPAD() do długości 30 znaków. Dopełnienie jest wypełniane kropkami. Kolumna min_salary jest dopełniana po lewej stornie za pomocą funkcji LPAD do długości 15 znaków. Dopełnienie jest wypełniane *+ :


TRIM
TRIM(x) usuwa znaki spacji z lewej i prawej strony x. Można przesłać opcjonalny parametr napis_przycinany określający, które znaki mają zostać usunięte. Funkcja wygląda wtedy następująco  TRIM(napis_przycinany FROM x). Za pomocą słów kluczowych LEADING oraz TRAILING możemy określić stronę, z której zostaną usunięte znaki.
TRIM(LEADING napis_przycinany FROM x) usuwa znaki z lewej strony x, natomiast TRIM(TRAILING napis_przycinany FROM x) usuwa znaki z prawej strony x.


Czasami występuje sytuacja, gdy chcemy pobrać dane, które nie pochodzą z żadnej tabeli, np. dane systemowe tj. obecna data i godzina, czy też dane zwracane jako wynik przetwarzania funkcji, gdzie parametrem jest podany przez nas ciąg znaków. W takiej sytuacji wykorzystuje się tabele rdb$databse. Przechowuje ona podstawowe informacje na temat bazy danych. Zawiera tylko jeden rekord.

REPLACE
Funkcja REPLACE(x, szukany_napis, napis_zastępujący) wyszukuje w x napis szukany_napis i zastępuje go napisem napis_zastępujący. Poniższy przykład pobiera z tabeli project kolumnę proj_desc i zastępuje za pomocą funkcji REPLACE() napis Develop łańcuchem Expand:


SUBSTRING
Funkcja SUBSTRING(x, start, długość) zwraca podnapis napisu x, rozpoczynjący się w pozycji określonej przez start. Pierwszy znak w x ma pozycję 1. Poniższe zapytanie wykorzystuje funkcję SUBSTRING() do pobrania 4-znakowego podłańcucha rozpoczynającego się od pozycji 2 w kolumnie po_number tabeli sales:


Brak komentarzy:

Prześlij komentarz