SQL 関数:文字関数

一覧

関数 取得 結果
UPPER 大文字変換 UPPER( 'aaa' ) 'AAA'
LOWER 小文字変換 LOWER( 'AAA' ) 'aaa'
INITCAP 先頭大文字変換 INITCAP( 'aaa' ) 'Aaa'
LPAD 文字埋め(左側) LPAD( 'AAA' , 5 , '0' ) '00AAA'
RPAD 文字埋め(右側) RPAD( 'AAA' , 5 , '0' ) 'AAA00'
SUBSTR 切り出し SUBSTR( 'ABC' , 2 , 2 ) 'BC'
TRIM 切り捨て TRIM( ' AA BB ' ) 'AA BB'
REPLACE 置換 REPLACE( 'ABC', 'B' , 'X' ) 'AXC'
CONCAT 接続 CONCAT( 'AA' , 'BB' ) 'AABB'
LENGTH 文字数 LENGTH( 'AAA' ) 3
INSTR 文字位置 INSTR( 'ABC' , 'A' ) 1
大文字/小文字

小文字変換
LOWER('ABC DEF')
⇒'abc def'

大文字変換
UPPER('abc def')
⇒'ABC DEF'

先頭文字のみ大文字変換
INITCAP('ABC DEF')
⇒'Abc Def'
INITCAP('abc def')
⇒'Abc Def'

0埋め

指定文字埋め(右寄せ)
LPAD('ABC', 5, '*')
⇒'**ABC'

指定文字埋め(左寄せ)
RPAD('ABC', 5, '*')
⇒'ABC**'

列名に4桁の時刻がある場合(例:0545)
これがINTEGER型だと、545となる。
この場合、0埋めは上手く行かない。 

SELECT RIGHT('0000'+ 列名, 2) FROM [TABLE]

正しくは、
SELECT RIGHT('0000'+ CONVERT(VARCHAR,列名), 2) FROM [TABLE]

切り出し

※VBで言うMid()関数

切り出し
SUBSTR('ABCDEF' ,1 ,3)
⇒'ABC'

SUBSTR('ABCDEF' ,-3)
⇒'DEF'

select
 col1,
 col1列の3文字目から1文字切り取り
 substring(col1 from 3 for 1)
 col1が数値型の場合
 substring('' || col1 from 3 for 1)
from
 ~

SUBSTRING
SUBSTRING( expression, start, length )

SELECT SUBSTRING( 列名, 1, 2) FROM [TABLE]

LEFT
SELECT LEFT(列名,2) FROM [TABLE]

※VBと同じ使い方

RIGHT
SELECT RIGHT(列名,2) FROM [TABLE]

※VBと同じ使い方
DBの種類によっては使えない(Oracle等)。

切り捨て

前後の半角スペース削除
TRIM(' abc def ')
⇒'abc def'
※真ん中の半角スペースは削除されない。全角スペースは前後にあっても無視。

前後の指定文字削除
TRIM('G' FROM 'GoodMorning')
⇒'oodMorning'

TRIM(' ' FROM ' abc def ')
⇒'abc def' ※TRIM(' abc def ')と同じ

BOTH/LEADING/TRAINLING ※省略可(BOTHがデフォルト)

TRIM(BOTH ' ' FROM ' abc def ')
⇒'abc def' ※TRIM(' abc def ')と同じ

TRIM(LEADING ' ' FROM ' abc def ')
⇒'abc def '

TRIM(TRAILING ' ' FROM ' abc def ')
⇒' abc def'

trim(' aa a ')
→aa a
トリムは前後のみ
途中をトリムする場合は置換を使用
置換

REPLACE('Good', 'G', 'W')
⇒'Wood'
正規表現による置換
regexp_replace( 対象, 検索, 置換 [,繰り返し])
regexp_replace( ' a a a ', '(\s| )', '', 'g')
→aaa
接続

CONCAT('ABC' , 'DEF')
⇒'ABCDEF'

↓ も可
'ABC' || 'DEF'
⇒'ABCDEF'

文字数

LENGTH('ABC')
⇒3

LENGTH('ABC')
⇒3

CHAR_LENGTH('ABC')
CHARACTER_LENGTH('ABC')
も可(同機能)

文字位置

INSTR('ABC', 'A')
⇒1
※1から

INSTR('ABC', 'Z')
⇒0
※該当無し