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, x, start). 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:
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