May 14, 2013 at 9:47 am
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
May 14, 2013 at 10:00 am
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/
May 14, 2013 at 12:33 pm
Thank you for your quick response. I will have to try that out.
May 15, 2013 at 7:20 am
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
May 15, 2013 at 7:35 am
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
May 15, 2013 at 8:48 am
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