【PostgreSQL】大文字小文字を変換する、区別せず比較する

2021年2月19日PostgreSQL構文

大文字小文字を変換する、区別せず比較する方法

大文字小文字を変換する、区別せず比較する方法を紹介します。

 

 

小文字から大文字に変換する

-- 小文字 → 大文字へ変換する
upper( 変換する文字列 )

-- 変換例   ※下の例はそのまま実行できます
select upper('abc');     --"ABC"
select upper('aBc');     --"ABC"
select upper('abc');  --"abc" 全角は変換されない

 

 

大文字から小文字に変換する

-- 大文字 → 小文字変換へ変換する
lower( 変換する文字列 )

-- 変換例   ※下の例はそのまま実行できます
select lower('ABC');     --"abc"
select lower('aBc');     --"abc"
select lower('ABC');  --"ABC" 全角は変換されない

 

 

大文字小文字を区別せず比較する

大文字小文字を区別しないためには、どちらの文字に合わせて比較します。

※次の例では大文字に合わせて比較しています。

--大文字に変換したもの同士で比較する
select upper('abc') = upper('ABC');             --true

--大文字に変換したもの同士で比較する+trim
select upper(trim('abc')) = upper(trim('ABC')); --true

 

 

かなり緩めな文字列比較

かなり緩めに文字列を比較したい場合の例を紹介します。

例えば、大文字小文字、全半角、前後のスペースが異なっても同じとみなしたい場合です。

例:APPLEとapple、BLUEとblue など

--それぞれの文字をtrim後、小文字を大文字に変換しさらに半角から全角に変換して比較する
select convert_half_to_full(upper2(trim('abc '))) 
       = convert_half_to_full(upper2(trim('ABC '))); --true

 

★★ここまで★★