home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.databases.ms-sqlserver      Notorious Rube Goldberg contraption      19,505 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 18,070 of 19,505   
   Erland Sommarskog to tshad   
   Re: Case with NULL   
   13 Jan 11 22:49:06   
   
   From: esquel@sommarskog.se   
      
   tshad (tfs@dslextreme.com) writes:   
   > Is one better than the other?   
   >   
   > SELECT PersonID = coalesce(o.ID, o2.ID)   
   >   
   > or   
   >   
   > SELECT PersonID = CASE WHEN o.ID IS NULL THEN o2.ID ELSE o.ID END   
      
   As Lennart says, the former is shorter to type. The algebrizer   
   rewrites coalesce to a CASE expression, so they are very equivalent.   
      
   But you could claim that CASE is better, because it is more honest.   
   Say that you write:   
      
     coalesce((SELECT ....), 4711)   
      
   Looks good. But this is the true story:   
      
      CASE WHEN (SELECT ...) IS NOT NULL THEN (SELECT ...) ELSE 4711 END   
      
   Personally, I use coalesce all the time.   
      
   --   
   Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se   
      
   Links for SQL Server Books Online:   
   SQL 2008: http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx   
   SQL 2005: http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca