MS SQL ServerでOracleのDECODE MySQLのELT

MS SQL ServerではCASE WHENが使えるので基本的にはこちらを使う。
SQL Server 2012 からMySQLELTと同等のフォーマットのCHOOSEが使える。

CHOOSE ( index, val_1, val_2 [, val_n ] )

これと先のエントリーのビット位置算出を使用すると

SELECT CHOOSE (ROUND(LOG(<ターゲットカラム>)/LOG(2),0,1),'A','B','C','D','E')

ちなみにSQL Server 2012からMySQLのIF関数と同じIIFも使えるようになった。
2008のときはこちらもCASE WHENを使用する必要があった。

IIF ( boolean_expression, true_value, false_value )