SQL Server 2012 IF THEN logic to CASE THEN

  • Hey Everyone,

    I have a set of IF THEN logic that create additional fields. Does anyone have a great grasp of how to convert the attached examples from IF THEN to CASE THEN statements. Any help would be appreciated.

    Example 1:

    IIF(fmwa.GroupNbr<>'','NO', IIF(dind.DefaultIndicator='Y', 'YES', 'NO')) AS Default_ID

    Example 2:

    IIF(tagagt.AgencyName='',(RTrim(tagagt.LastName)) + N', ' + LTrim(RTrim(tagagt.FirstName)), LTrim(RTrim(tagagt.AgencyName))) AS WA_Name

  • jjgier (5/14/2013)


    Hey Everyone,

    I have a set of IF THEN logic that create additional fields. Does anyone have a great grasp of how to convert the attached examples from IF THEN to CASE THEN statements. Any help would be appreciated.

    Example 1:

    IIF(fmwa.GroupNbr<>'','NO', IIF(dind.DefaultIndicator='Y', 'YES', 'NO')) AS Default_ID

    Example 2:

    IIF(tagagt.AgencyName='',(RTrim(tagagt.LastName)) + N', ' + LTrim(RTrim(tagagt.FirstName)), LTrim(RTrim(tagagt.AgencyName))) AS WA_Name

    Like this?

    Example 1:

    case when fmwa.GroupNbr <> '' then 'NO' when dind.DefaultIndicator = 'Y' then ' YES' else 'NO' end as Default_ID

    Example 2:

    case when tagagt.AgencyName = ''

    then RTrim(tagagt.LastName)) + N', ' + LTrim(RTrim(tagagt.FirstName)

    else LTrim(RTrim(tagagt.AgencyName))

    end as WA_Name

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • Thank you for your quick response. I will have to try that out.

  • Tested that out last night, it worked great! But another question, how do I place the Case Statements together? I tried this last night and it didn't work out.

    CASE

    CASE WHEN fmwa.GroupNbr<>'' THEN 'NO'

    WHEN dind.DefaultIndicator='Y' THEN 'YES'

    ELSE 'NO'

    END AS Default_ID,

    CASE WHEN tagagt.AgencyName=''

    THEN RTrim(LTrim(tagagt.LastName)) + N', ' + RTrim(LTrim(tagagt.FirstName))

    ELSE RTrim(LTrim(tagagt.AgencyName))

    END AS WA_Name

  • That would be correct as part of a SELECT statement. CASE isn't a statement, it's an expression used within a query.

    So

    SELECT

    CASE WHEN fmwa.GroupNbr<>'' THEN 'NO'

    WHEN dind.DefaultIndicator='Y' THEN 'YES'

    ELSE 'NO'

    END AS Default_ID,

    CASE WHEN tagagt.AgencyName=''

    THEN RTrim(LTrim(tagagt.LastName)) + N', ' + RTrim(LTrim(tagagt.FirstName))

    ELSE RTrim(LTrim(tagagt.AgencyName))

    END AS WA_Name

    FROM <some table> ....

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Thanks for all the help guys! 🙂

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply