Oracle Database
Strängmanipulation
Sök…
Samkoppling: Operatör || eller concat () -funktion
Oracle SQL och PL / SQL ||
operatören låter dig sammanfoga två eller flera strängar tillsammans.
Exempel:
Antagande av följande customers
:
id firstname lastname
--- ----------- ----------
1 Thomas Woody
Fråga:
SELECT firstname || ' ' || lastname || ' is in my database.' as "My Sentence"
FROM customers;
Produktion:
My Sentence
---------------------------------
Thomas Woody is in my database.
Oracle stöder också standard SQL CONCAT(str1, str2)
-funktionen:
Exempel:
Fråga:
SELECT CONCAT(firstname, ' is in my database.') from customers;
Produktion:
Expr1
---------------------------------
Thomas is in my database.
ÖVRE
UPPER-funktionen låter dig konvertera alla små bokstäver i en sträng till versaler.
SELECT UPPER('My text 123!') AS result FROM dual;
Produktion:
RESULT
------------
MY TEXT 123!
INITCAP
INITCAP
funktionen konverterar fallet med en sträng så att varje ord börjar med en stor bokstav och alla efterföljande bokstäver är små.
SELECT INITCAP('HELLO mr macdonald!') AS NEW FROM dual;
Produktion
NEW
-------------------
Hello Mr Macdonald!
LÄGRE
LOWER konverterar alla stora bokstäver i en sträng till små bokstäver.
SELECT LOWER('HELLO World123!') text FROM dual;
utgångar:
text |
---|
hej värld123! |
Vanligt uttryck
Låt oss säga att vi bara vill ersätta siffror med två siffror: regelbundet uttryck kommer att hitta dem med (\d\d)
SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '(\d\d)', '#')
FROM dual;
Resulterar i:
'2, 5, and # are numbers in this example'
Om jag vill byta delar av texten använder jag \1
, \2
, \3
att kräva de matchade strängarna:
SELECT REGEXP_REPLACE ('swap around 10 in that one ', '(.*)(\d\d )(.*)', '\3\2\1\3')
FROM dual;
SUBSTR
SUBSTR
hämtar en del av en sträng genom att ange startpositionen och antalet tecken som ska extraheras
SELECT SUBSTR('abcdefg',2,3) FROM DUAL;
avkastning:
bcd
För att räkna från strängens SUBSTR
accepterar SUBSTR
ett negativt tal som den andra parametern, t.ex.
SELECT SUBSTR('abcdefg',-4,2) FROM DUAL;
avkastning:
de
För att få det sista tecknet i en sträng: SUBSTR(mystring,-1,1)
LTRIM / RTRIM
LTRIM
och RTRIM
bort tecken från början eller slut (respektive) på en sträng. En uppsättning med ett eller flera tecken kan levereras (standard är ett mellanslag) för att ta bort.
Till exempel,
select LTRIM('<===>HELLO<===>', '=<>')
,RTRIM('<===>HELLO<===>', '=<>')
from dual;
Returns:
HELLO<===>
<===>HELLO