This is a discussion on Select statement query within the SQL Server forums, part of the Microsoft SQL Server category; --> In my select statement, I return a column for 'datediff' using a CASE query. I call this column 'Elapsed_days' ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| In my select statement, I return a column for 'datediff' using a CASE query. I call this column 'Elapsed_days' is there anyway I can use this result later on in the same select? IE I want to refer to 'elasped days' in another CASE query rather than have to re-write something which incorporates the original one. Simpler the better - I'm new! Make any sense? Hope so |
| ||||
| You cannot directly reference an aliased column in the same SELECT statement, you would have to repeat the expression. However, you can use a derived table (or a Common Table Expression if on SQL Server 2005 - http://msdn2.microsoft.com/en-us/library/ms190766.aspx). Here is an example using derived table: SELECT elapsed_days, CASE WHEN elapsed_days > 60 THEN 'Over 60 days' ELSE 'Less than 60 days' END AS msg FROM (SELECT CASE WHEN 1 = 1 THEN DATEDIFF(dd, '20080118', '20080120') END ) AS T (elapsed_days) HTH, Plamen Ratchev http://www.SQLStudio.com |
| Thread Tools | |
| Display Modes | |
|
|