Oracle Database
文字列操作
サーチ…
連結:演算子||またはconcat()関数
Oracle SQLとPL / SQL ||
演算子を使用すると、2つ以上の文字列を連結することができます。
例:
次のcustomers
テーブルを想定します。
id firstname lastname
--- ----------- ----------
1 Thomas Woody
クエリ:
SELECT firstname || ' ' || lastname || ' is in my database.' as "My Sentence"
FROM customers;
出力:
My Sentence
---------------------------------
Thomas Woody is in my database.
Oracleは、標準のSQL CONCAT(str1, str2)
関数もサポートしています。
例:
クエリ:
SELECT CONCAT(firstname, ' is in my database.') from customers;
出力:
Expr1
---------------------------------
Thomas is in my database.
アッパー
UPPER関数を使用すると、文字列内のすべての小文字を大文字に変換できます。
SELECT UPPER('My text 123!') AS result FROM dual;
出力:
RESULT
------------
MY TEXT 123!
INITCAP
INITCAP
関数は、各単語が大文字で始まり、すべての後続の文字が小文字になるように、文字列の大/小文字を変換します。
SELECT INITCAP('HELLO mr macdonald!') AS NEW FROM dual;
出力
NEW
-------------------
Hello Mr Macdonald!
LOWER
LOWERは、文字列内のすべての大文字を小文字に変換します。
SELECT LOWER('HELLO World123!') text FROM dual;
出力:
テキスト |
---|
こんにちはworld123! |
正規表現
数字だけを2桁で置き換えたいとしましょう。正規表現では(\d\d)
SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '(\d\d)', '#')
FROM dual;
結果:
'2, 5, and # are numbers in this example'
テキストの一部を入れ替える場合は、 \1
、 \2
、 \3
を使って一致する文字列を呼び出します。
SELECT REGEXP_REPLACE ('swap around 10 in that one ', '(.*)(\d\d )(.*)', '\3\2\1\3')
FROM dual;
SUBSTR
SUBSTR
は、抽出する文字の開始位置とSUBSTR
を指定して文字列の一部を取得します。
SELECT SUBSTR('abcdefg',2,3) FROM DUAL;
戻り値:
bcd
文字列の最後から数えるには、 SUBSTR
は2番目のパラメータとして負の数を受け取ります。
SELECT SUBSTR('abcdefg',-4,2) FROM DUAL;
戻り値:
de
文字列の最後の文字を取得するには: SUBSTR(mystring,-1,1)
LTRIM / RTRIM
LTRIM
およびRTRIM
は、文字列の先頭または末尾から文字を削除します。削除するには、1つ以上の文字セットを指定することができます(デフォルトはスペースです)。
例えば、
select LTRIM('<===>HELLO<===>', '=<>')
,RTRIM('<===>HELLO<===>', '=<>')
from dual;
戻り値:
HELLO<===>
<===>HELLO
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow