SQL_CASE式_短絡評価の注意点

短絡評価とは


CASE式で真になるWHEN句を探索した時点で評価が打ち切られ、残りのWHEN句は無視されること。

対策


WHEN句の条件は排反にする(排他的に書く)

条件が排反でないと、条件を複数書いた場合は最初に書いたWHEN条件のみ結果が出力され、それ以下に書いたWHEN条件は無視されてしまいます。

短絡評価による影響


例えば、SQL正規表現を使ってテキストマイニングをして、分類をするとします。

複数の条件に該当するデータがある場合、最初に書いた条件のみに分類され、それ以下に書いた条件には分類されなくなってしまいます。

これでは条件を書いた順番が上位かどうかで分類の基準が変わってしまいますので、客観的な分析になりません。

やはり餅は餅屋で、テキストマイニングをしたい時はPythonやKH Coderなど専用ツールを使ったようが良さそうです。

KH Coderの場合


例えば、テキストデータをAとBの2つに分類したいとします。

データがAに当てはまる条件と、Bの条件のうち両方に当てはまる場合、KH Coderでは両方に分類されます。

蛇足


アンケートの設計でも、考え方は同じですね。

設問の選択肢で、AともBとも取れる書き方だと、回答者は困ってしまいますし、有用なデータは得られません。

例)

Q. 解約の理由は?

1. コスト
2. 事業縮小

1に2が含まれてしまいますので、選択肢の1と2が背反になっていません。 「事業を縮小したからコストを払えない」が、1でも2でも当てはまってしまいます。

アンケートでも、選択肢は排他的に作る必要があります。

以上です。