サーチ…


連結:演算子||または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