トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

10-65 全角半角の混在チェック

SQLパズル

テーブル
文字列
--------
Oracle
Oraオラ
オラクル

任意の文字列に、
全角文字と半角文字が混在しているかチェックする

出力結果
文字列        混在有無
-----------   ------------
Oracle        半角のみ
Oraオラ       全角半角混在
オラクル      全角のみ


SQL

select 文字列,
case Lengthb(文字列)
when Length(文字列)   then '半角のみ'
when 2*Length(文字列) then '全角のみ'
else '全角半角混在' end as 混在有無
from (select 'Oracle' as 文字列 from dual
union select 'Oraオラ'  from dual
union select 'オラクル' from dual);


解説

文字コードによっては、
convert関数を使ってからバイト数を取得する必要があります