How do I write an if else statement in Reporting Services expression language?

reporting-services, sql-server-2008, ssrs-expression

Solution

Have you tried a switch statement?

= Switch( Fields!StateProvinceId.value=1,"Ontario", Fields!StateProvinceId.value=2,"Quebec", Fields!StateProvinceId.value=3,"Manitoba")

See "decision functions" on this page for example:

http://msdn.microsoft.com/en-us/library/ms157328.aspx

Problem

I would like to write a Reporting Services `"Expression"` that basically behaves as the following (pseudo code)... ``` if ([Fields!StateProvinceId.Value] == 1) { return "Ontario"; } else if ([Fields!StateProvinceId.Value] == 2) { return "Quebec"; } else if ([Fields!StateProvinceId.Value] == 3) { return "Manitoba"; } // ... // more cases same pattern ``` I don't see this type of logic do I have to nest a bunch of IIF? ``` =IIF(Fields!StateProvinceId.Value = 1, "Ontario", IIF(Fields!StateProvinceId.Value = 2, "Quebec", IFF(Fields!StateProvinceId.Value = 3, "Manitoba", "Unknown Province"))) ```

Original source