Pokazywanie postów oznaczonych etykietą replace. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą replace. Pokaż wszystkie posty

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: