パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

Access

ACCESSでCASEが使えないので代わりにSWITCHを使う。

投稿日:

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ」を読んで学習しています。

サンプルファイルの以下のSQLがあったので、ACCESSを使って実行しようとしました。

SELECT CASE pref_name
WHEN '徳島' THEN '四国'
WHEN '香川' THEN '四国'
WHEN '愛媛' THEN '四国'
WHEN '高知' THEN '四国'
WHEN '福岡' THEN '九州'
WHEN '佐賀' THEN '九州'
WHEN '長崎' THEN '九州'
ELSE 'その他' END AS district,
SUM(population)
FROM PopTbl
GROUP BY CASE pref_name
WHEN '徳島' THEN '四国'
WHEN '香川' THEN '四国'
WHEN '愛媛' THEN '四国'
WHEN '高知' THEN '四国'
WHEN '福岡' THEN '九州'
WHEN '佐賀' THEN '九州'
WHEN '長崎' THEN '九州'
ELSE 'その他' END;

演算子がありませんというエラーが発生します。

ACCESSでCASEが使えないので代わりにSWITCHを使うしかないようです。
以下のように書き換えました。

SELECT SWITCH(
pref_name='徳島','四国',
pref_name='香川','四国',
pref_name='愛媛','四国',
pref_name='高知','四国',
pref_name='福岡','九州',
pref_name='佐賀','九州',
pref_name='長崎','九州',
TRUE,'その他'),
SUM(population)
FROM PopTbl
GROUP BY
SWITCH(
pref_name='徳島','四国',
pref_name='香川','四国',
pref_name='愛媛','四国',
pref_name='高知','四国',
pref_name='福岡','九州',
pref_name='佐賀','九州',
pref_name='長崎','九州',
TRUE,'その他')

実行結果です。







-Access

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.