While trying, in SQL 2016 (13.0.5850.14), to see if CHOOSE allowed an inline query to provide the index value, I tried this:
SELECT CHOOSE((SELECT 1), 'A', 'B', 'C') --<<-- WARNING! Generates a level 20 error (at least on my system)
Of course this worked:
SELECT CHOOSE(1, 'A', 'B', 'C") --<<-- works just fine, of course
SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial: "If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them."