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

2020年11月2日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

 

 

かなり緩めな文字列比較

次の例では、かなり緩めな文字列比較です。

・大文字小文字

・全半角

・前後のスペース

が違っていても同じと判断させます。

 

半角を全角に変換する関数と、全角の小文字を大文字に変換する関数

二つ使用していますので、それらを実行してから下の分を実行してください。

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

 

 

構文まとめを書いています。ぜひ一度見てみて下さい。

「基本構文・こんな時どう書くんだっけ?」をまとめました