CASEを使うことで都道府県をコード表示してみる

都道府県は、テーブルのadd1フィールドに入っている前提。
ちょっとSQL文が長いがしょうがないでしょうか。
SELECT code,namej,add1,
CASE
when left(add1,2)='北海' then '01'
when left(add1,2)='青森' then '02'
when left(add1,2)='岩手' then '03'
when left(add1,2)='宮城' then '04'
when left(add1,2)='秋田' then '05'
when left(add1,2)='山形' then '06'
when left(add1,2)='福島' then '07'
when left(add1,2)='茨城' then '08'
when left(add1,2)='栃木' then '09'
when left(add1,2)='群馬' then '10'
when left(add1,2)='埼玉' then '11'
when left(add1,2)='千葉' then '12'
when left(add1,2)='東京' then '13'
when left(add1,2)='神奈' then '14'
when left(add1,2)='新潟' then '15'
when left(add1,2)='富山' then '16'
when left(add1,2)='石川' then '17'
when left(add1,2)='福井' then '18'
when left(add1,2)='山梨' then '19'
when left(add1,2)='長野' then '20'
when left(add1,2)='岐阜' then '21'
when left(add1,2)='静岡' then '22'
when left(add1,2)='愛知' then '23'
when left(add1,2)='三重' then '24'
when left(add1,2)='滋賀' then '25'
when left(add1,2)='京都' then '26'
when left(add1,2)='大阪' then '27'
when left(add1,2)='兵庫' then '28'
when left(add1,2)='奈良' then '29'
when left(add1,2)='和歌' then '30'
when left(add1,2)='鳥取' then '31'
when left(add1,2)='島根' then '32'
when left(add1,2)='岡山' then '33'
when left(add1,2)='広島' then '34'
when left(add1,2)='山口' then '35'
when left(add1,2)='徳島' then '36'
when left(add1,2)='香川' then '37'
when left(add1,2)='愛媛' then '38'
when left(add1,2)='高知' then '39'
when left(add1,2)='福岡' then '40'
when left(add1,2)='佐賀' then '41'
when left(add1,2)='長崎' then '42'
when left(add1,2)='熊本' then '43'
when left(add1,2)='大分' then '44'
when left(add1,2)='宮崎' then '45'
when left(add1,2)='鹿児' then '46'
when left(add1,2)='沖縄' then '47'
else '---'
END ken
FROM `table`
ORDER BY ken