Recent PostsRecent Posts Popular TopicsPopular Topics
 Home Search Members Calendar Who's On

 CROSS APPLY Rate Topic Display Mode Topic Options
Author
 Message
 Posted Wednesday, October 17, 2012 6:15 AM
 SSC-Enthusiastic Group: General Forum Members Last Login: Monday, December 02, 2013 6:48 AM Points: 180, Visits: 558
 CROSS APPLY ( SELECT col = CASE WHEN MAX(col) = MIN(col) THEN MAX(col) ELSE NULL END )
Post #1373755
 Posted Wednesday, October 17, 2012 7:50 AM
 SSChasing Mays Group: General Forum Members Last Login: 2 days ago @ 3:24 AM Points: 640, Visits: 2,483
 And the question is!? ==========================================================================================================================A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns and tequila. Mitch Ratcliffe
Post #1373797
 Posted Wednesday, October 17, 2012 8:30 AM
 SSC-Dedicated Group: General Forum Members Last Login: Today @ 2:44 PM Points: 34,544, Visits: 28,721
 Skanda (10/17/2012)CROSS APPLY ( SELECT col = CASE WHEN MAX(col) = MIN(col) THEN MAX(col) ELSE NULL END )You REALLY need to get out of the habit of editing your posts. Replacing the question with the answer does no one reading the thread any good. Even you won't have a clue as to what the question actually was in a couple of weeks so you've destroyed your own valuable reference. --Jeff Moden"RBAR is pronounced "ree-bar" and is a "Modenism" for "Row-By-Agonizing-Row".First step towards the paradigm shift of writing Set Based code: Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column." "Change is inevitable. Change for the better is not." -- 04 August 2013(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013Helpful Links:How to post code problemsHow to post performance problems
Post #1373839
 Posted Wednesday, October 17, 2012 9:26 AM
 Ten Centuries Group: General Forum Members Last Login: Tuesday, September 03, 2013 8:24 AM Points: 1,240, Visits: 5,421
 Skanda (10/17/2012)CROSS APPLY ( SELECT col = CASE WHEN MAX(col) = MIN(col) THEN MAX(col) ELSE NULL END )CROSS APPLY applies a "function" to each row of the (virtual) table. In this case, you're calculating a value based on an aggregate of a set consisting of a single record. You can see this by adding a COUNT(*) to your SELECT clause within the CROSS APPLY. Because the set contains a single record, MAX(col) is necessarily equal to MIN(col) except for the case where col is null. Since you're returning a null value in that case, your CROSS APPLY is equivalent to` CROSS APPLY ( SELECT col )`Drew J. Drew AllenBusiness Intelligence AnalystPhiladelphia, PA
Post #1373896

 Permissions