Szukaj…


Concatenation: Operator || lub funkcja concat ()

Oracle SQL i PL / SQL || operator pozwala łączyć 2 lub więcej ciągów razem.

Przykład:

Zakładając następującą tabelę customers :

 id  firstname    lastname
---  -----------  ----------
  1  Thomas       Woody

Pytanie:

 SELECT firstname || ' ' || lastname || ' is in my database.' as "My Sentence" 
   FROM customers;

Wynik:

My Sentence
---------------------------------
Thomas Woody is in my database.

Oracle obsługuje również standardową funkcję SQL CONCAT(str1, str2) :

Przykład:

Pytanie:

 SELECT CONCAT(firstname, ' is in my database.') from customers;

Wynik:

Expr1
---------------------------------
Thomas is in my database.

GÓRNY

Funkcja GÓRNA pozwala na konwersję wszystkich małych liter w ciągu na wielkie.

SELECT UPPER('My text 123!') AS result FROM dual;

Wynik:

RESULT    
------------
MY TEXT 123!

INITCAP

Funkcja INITCAP konwertuje wielkość liter tak, aby każde słowo zaczynało się od dużej litery, a wszystkie kolejne litery były pisane małymi literami.

SELECT INITCAP('HELLO mr macdonald!') AS NEW FROM dual;

Wynik

NEW
-------------------
Hello Mr Macdonald!

NIŻSZY

LOWER konwertuje wszystkie wielkie litery w ciągu na małe litery.

SELECT LOWER('HELLO World123!') text FROM dual;

Wyjścia:

tekst
cześć world123!

Wyrażenie regularne

Powiedzmy, że chcemy zastąpić tylko cyfry 2 cyframi: wyrażenie regularne znajdzie je za pomocą (\d\d)

SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '(\d\d)', '#')
FROM dual;

Prowadzi do:

'2, 5, and # are numbers in this example'

Jeśli chcę zamienić części tekstu, używam \1 , \2 , \3 aby wywołać dopasowane ciągi znaków:

 SELECT REGEXP_REPLACE ('swap around 10 in that one ', '(.*)(\d\d )(.*)', '\3\2\1\3')
 FROM dual;

SUBSTR

SUBSTR pobiera część ciągu, wskazując pozycję początkową i liczbę znaków do wyodrębnienia

SELECT SUBSTR('abcdefg',2,3) FROM DUAL;

zwroty:

bcd

Aby policzyć od końca łańcucha, SUBSTR przyjmuje liczbę ujemną jako drugi parametr, np

SELECT SUBSTR('abcdefg',-4,2) FROM DUAL;

zwroty:

de

Aby uzyskać ostatni znak w ciągu: SUBSTR(mystring,-1,1)

LTRIM / RTRIM

LTRIM i RTRIM usuwają znaki odpowiednio z początku lub końca łańcucha. Może zostać dostarczony zestaw jednego lub więcej znaków (domyślnie jest to spacja) do usunięcia.

Na przykład,

select LTRIM('<===>HELLO<===>', '=<>')
      ,RTRIM('<===>HELLO<===>', '=<>')
from dual;

Zwroty:

HELLO<===>
<===>HELLO


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow